Initial DRI3000 protocol specs available

Keith Packard keithp at keithp.com
Thu Mar 21 15:41:04 PDT 2013


James Jones <jajones at nvidia.com> writes:

> If you associate an X Fence Sync with your swap operation, the driver 
> has the option to trigger it directly from the client command stream and 
> wake up only the applications waiting for that fence.  The compositor, 
> if using GL, could have received the swap notification event and already 
> programmed the response compositing based on it before the swap even 
> completes, and just insert a token to make the GPU or kernel wait for 
> the fence to complete before executing the compositing rendering
> commands.

Sorry for the long lag; I've been thinking about this quite a bit. I
went and read through your earlier proposal as well as reading through
the related GL fence extensions and I think this is what we want in
general terms. There are two distinct times of interest here:

 1) When the buffer is free and can be used for another frame.

 2) When the buffer contents are visible on the screen. (This
    needs some weasel wording so that the system can do things like
    severely limit background applications or invisible applications.)

Providing X Fence Sync objects for each of these times seems like it
will give applications what they need.

The second issue is that we must relate these X Fence Sync objects to
direct rendering so that clients using shared objects outside of the X
protocol can synchronize their operations with the X server. For that, I
think we can share a page between application and X server that contains
all of the necessary fence information along with a pthreads semaphore
object that can lock access to the fence and also provide a way to block
until the X Fence Sync object is signaled.

This eliminates the explicit Swap events and replaces them with Sync
objects.

I'll write this up in the extension description and try to get some code
written in the next couple of weeks.

-- 
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20130321/1499d1fa/attachment.pgp>


More information about the xorg-devel mailing list