Last year a new set of DRI2 extensions
came about for sync and swap support of display buffers to better reduce potential "tearing" that may appear on displays in some composited environments. This work that's exposed to the client through OpenGL/GLX extensions also can lead to improved performance, video memory savings, and other benefits as talked about extensively on the Composite Swap Wiki page
. A new GLX swap event extension
also came about out of expressed needs by the Clutter/Mutter developers.
Benefiting from this new code requires recent graphics packages, like X.Org Server 1.8, newer dri2proto / glproto / libdrm, and Mesa 7.8. The hardware drivers have also needed to be updated to implement these capabilities. Up to this point only the Intel Linux driver has provided this sync and swap support, since from the onset this code was developed by the Intel OSTC developers and as such their driver was the one targeted for the reference implementation. Fortunately, the ATI driver is now picking up the support.
Red Hat's Jerome Glisse has been porting the sync and swap extension support to the ATI kernel mode-setting driver. This morning Jerome put out a single, 500-line patch
that implements this useful functionality. This patch goes against the latest xf86-video-ati DDX driver Git code-base and it also requires a change (for querying the hardware CRTC ID) to the Radeon DRM code found within the Linux kernel, which can be found in a separate patch that was recently published by Jerome.
Jerome reports that so far his testing has been favorable and now he's looking for the community to engage in testing out this sync and swap support for ATI hardware on the open-source stack. It will require very up-to-date components of the Linux graphics stack, as mentioned above, and hopefully the needed DRM change(s) will make it into the Linux 2.6.35 kernel
and the DDX alterations will make it into the next xf86-video-ati release.