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 X.org 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 rendering. I can give more background if needed, but for now, here¹s the code: http://github.com/cubanismo/xserver/tree/fence_sync http://github.com/cubanismo/xextproto/tree/fence_sync http://github.com/cubanismo/libXext/tree/fence_sync http://github.com/cubanismo/damageproto/tree/fence_sync http://github.com/cubanismo/libXdamage/tree/fence_sync 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. Thanks, -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. ----------------------------------------------------------------------------------- _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
