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