Last year there were NVIDIA engineers hard at work on putting synchronization fences into the X Server, in order to suit their customer's needs so that X rendering can be synchronized with direct-rendering X clients. For example, this allows to sync up an OpenGL compositing manager screen updates with the X rendering process.
The NVIDIA 275.09.04 beta driver now exposes the GL_EXT_x11_sync_object extension. GL_EXT_x11_sync_object is dependent upon the ARB_sync extension and its latest version was written earlier in the calendar year. From the OpenGL specification:
Synchronization objects added the ability to better coordinate operations between multiple GL command streams. However, it is desirable to have the same level of coordination between GL command streams and external rendering APIs. This extension introduces two new concepts to build upon the synchronization infrastructure provided by ARB_sync:
1) A means to import an X Synchronization Fence object into the GL and use it as a sync object.
2) The concept of a reusable sync object.
The latter is necessary because the import operation is expensive and performing it every time a synchronization point was reached would make the synchronization prohibitively slow.
This extension stops short of allowing the GL to change the state of imported/reusable sync objects, but does not add any language that would prohibit such functionality from being added in a subsequent extension.
Beyond doing GL_EXT_x11_sync_object, there's a bug-fix for KDE4 desktop effects crashing on X.Org Server 1.10+, a change so that the X driver informs the audio driver when a display is disabled in order to initiate a jack-unplug event, and improved performance of window resizing under KDE4 with slow CPUs.
Download links and more details are available from the Phoronix Forums.