Originally posted by droste
View Post
Announcement
Collapse
No announcement yet.
AMDGPU & Radeon DDX Updated - Better 2D Performance, Tear Free, DRI3 Default
Collapse
X
-
Originally posted by bug77 View Post
Technical implementation doesn't matter. Tearing is caused by your video card rendering more frames than your monitor can show.
Tearing is when you monitor can display 60 frames each second and your card can render 90. If I fix tearing and make the card render only 60 fps, are you actually loosing performance?
Thought experiment (and this isn't using Wayland so the buffers aren't controlled the app): an app has exclusive access to the scanout buffer; it draws SLOWER than whatever the current modeset time is; it is in the middle of drawing over the previous frame when it is stopped by the crtc; the result should be new data on top and old on bottom (assume) which is ALSO what you get when the drawing application is too fast.
Of course this can all be avoided regardless of the application (or gpu) being too fast or slow by app level, system level and driver level synchronization and having multiple scanout buffers. How that's all accomplished is irrelevant, but they should all provide a "Wayland-like" experience with the downside, as mentioned, of, typically, adding a vsync or two worth of latency unless you can modeset the monitor (and crtc) fast enough to only scanout out when you've just finished with the single scanout buffer (and one is all you'd ever need).
Comment
-
Originally posted by Chewi View PostI recall similar tear-free options that have a negative performance impact. Is that the case here?
You were probably thinking of the "EXAVSync" option. TearFree (which BTW works with EXA as well) works completely differently from that, it should generally have smaller performance impact than EXAVSync, while eliminating tearing more reliably. The only downside should be the additional VRAM usage for the dedicated scanout buffers.
Is there a particular reason why it's not enabled by default?
BTW, apparently my wording in the release announcements was confusing: TearFree has been available for over a year, since the 7.6.0 / 1.0.0 releases. What's new in these releases is that it can now eliminate tearing in all possible display configurations.
- Likes 1
Comment
-
This option only applies to DRI2. DRI3 always allows triple buffering, because the buffers are managed on the client side. Triple buffering with DRI2 is very tricky, so we decided not to put in the effort for that in favour of DRI3.
- Likes 1
Comment
-
Originally posted by liam View Post
Are you sure? My understanding is that tearing is, somewhat, orthogonal to paint times.
Thought experiment (and this isn't using Wayland so the buffers aren't controlled the app): an app has exclusive access to the scanout buffer; it draws SLOWER than whatever the current modeset time is; it is in the middle of drawing over the previous frame when it is stopped by the crtc; the result should be new data on top and old on bottom (assume) which is ALSO what you get when the drawing application is too fast.
Of course this can all be avoided regardless of the application (or gpu) being too fast or slow by app level, system level and driver level synchronization and having multiple scanout buffers. How that's all accomplished is irrelevant, but they should all provide a "Wayland-like" experience with the downside, as mentioned, of, typically, adding a vsync or two worth of latency unless you can modeset the monitor (and crtc) fast enough to only scanout out when you've just finished with the single scanout buffer (and one is all you'd ever need).
Comment
-
Originally posted by pal666 View Postactually there is the other way: to slow down the monitor, which is done by amd freesync
Comment
Comment