Phoronix: DRI2 Sync + Swap Extensions Near Reality
When running a modern Linux graphics driver stack in a composited environment there is a lot less tearing -- particularly with regard to video playback, but OpenGL applications too -- now than there was in the past, but there is still room for improvement. One of the ways to improve this is by properly controlling the display of buffers with how often the swaps occur and to sync them with the monitor's refresh rate or the rate at which the compositor is running...
Cool, could this fix the performance issues with textured video playback with the kms ati drivers?
Is tearing and flicker the same?
Simply put, tearing occurs when the back-to-front buffer swap happens out of sync with the monitor's refresh rate. This means that the scanout starts before the front buffer is completely refreshed, which results in the monitor displaying both old and new data at the same time. The "tear" is a (usually) horizontal line at the point where the split between old and new data lies. VSync takes care of this artifact - unfortunately, vsync is not easy to implement under AIGLX using the current infrastructure, hence this work.
Flicker is the artifact that occurs when using direct rendering (DRI1) on a composited environment. The compositor normally redirects all rendering to an off-screen area to perform composition, before spitting the result back to screen. However, DRI1 is oblivious to this procedure and renders directly on screen, overwriting the compositor's output (flicker!) DRI2 solves this issue.
BTW, is antialiasing possible with ATI open drivers? I'd like to see smooth edges on my cube!
This kind of thing is what I've been waiting for in Linux Desktop graphics for a decade. Go Go Go!!
I think vsync might need support for interrupts, which the open-source ATI drivers lack (because of lack of documentation).Where in the OSS ATi graphics driver stack does VSync belong? DRI2?