Review Request: X Synchronization Fences

James Jones jajones at
Mon Jun 28 17:05:33 PDT 2010

I¹ve been working on a new type of X Synchronization Object for a while.
The basic idea is to provide an object that behaves like the existing X
Synchronization counters with the following exceptions:

* Operations that modify the state of fence sync objects are performed
relative to rendering operations on a specified X screen.

* Fence sync objects have binary state.  They are either ³triggered² or ³not
triggered².  Only the triggered state may be waited for asynchronously.
This greatly simplifies mapping the object¹s state to HW primitives and
synchronization objects available in other APIs, e.g., OpenGL Sync Objects.

For those of you who were at the developers conference in 2009, Aaron
Plattner gave a presentation describing the usefulness of these objects.  To
summarize, they can be used to synchronize X rendering with direct rendering
X clients such as OpenGL and vice versa.  They are especially useful in
synchronizing GL-based composite managers¹ screen updates with X¹s

I can give more background if needed, but for now, here¹s the code:

These branches have review suggestions from Aaron Plattner merged inline.
For the original code progression, replace fence_sync with fence_sync-old.

I¹d like to get these in the next major X server release after 1.9.

I¹m also working on similar xcb updates, and a GL extension that imports X
fence sync objects into OpenGL sync objects, and I will of course update the
X synchronization and X damage documentation.  However, I wanted to get the
basic changes reviewed first.

-James Jones

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

More information about the xorg-devel mailing list