Back in November we covered Clutter/Mutter work leading to a new GLX extension and this work delivers on this support. GLX_INTEL_swap_event is the new extension and it notifies the client when a buffer swap has been completed. The benefit of this extension is that glXSwapBuffers call can be made a-synchronous so that the client can continue on doing other work, but then will be notified when the swap has taken place so that it can return to preparing the next buffer.
The other part of this work is the new protocol requests for DRI2 2.2 and they include DRI2SwapBuffers, DRI2GetMSC, DRI2WaitMSC, DRI2WaitSBC and DRI2SwapInterval. These requests are used for supporting the SGI_video_sync, SGI_swap_interval, and OML_sync_control GLX extensions. It was back in October that we originally talked about these DRI2 sync and swap extensions.
This work requires new versions of dri2proto and glproto when building the X Server. The X.Org hardware drivers also need some changes to take advantage of these new X Server capabilities.
These new features can be found in X Server 1.8, which will be found in Fedora 13 and other distributions that aggressively update their X.Org packages, but Ubuntu users will need to wait for Ubuntu 10.10 before they see X Server 1.8/1.9. Other X Server 1.8 features include udev input handling (for Linux) to support moving away from HAL, xorg.conf.d configuration, and other improvements.