Updates to GLX_EXT_texture_from_pixmap

Brian Paul brian.paul at tungstengraphics.com
Thu Mar 23 08:32:28 PST 2006


I haven't had time to follow this discussion too closely but I guess 
my take on it is that no synchronization between reading/drawing is 
really needed at all.

When the programmer really wants "flicker-free" drawing (i.e. no 
displaying of incomplete rendering) they'll use double-buffering.  The 
compositor will texture from the front color buffer while the app 
draws to the back buffer.

For Xlib rendering into a pixmap we don't have an explicit 
"end-of-frame" command (no such thing in Xlib).  But the end of 
drawing can be implied by the app calling XSync() or an 
XGetEvent()-type of function since those force any pending rendering 
to be completed.  But even those functions don't name a drawable.


The X server could either:
1. Automatically double-buffer all window pixmaps.  Upon
    XSync()/XGetEvent() copy the back color buffer to the front
    for any pixmaps that have been written to since the last
    back->front copy.

2. Do nothing special; just texture from the pixmap whenever it wants.
    If the app isn't finished drawing you'll get an incomplete
    rendering on screen.  But that's basically what happens with X
    today anyway.  If the hardware can'd do simultaneous drawing to
    and texturing from a particular buffer, go with option 1.

-Brian




More information about the xorg mailing list