Some considerations
Martijn Sipkema
msipkema@sipkema-digital.com
Wed, 7 Jan 2004 13:05:29 +0100
> > Well, I meant native X11 rendering. I think from the above definition
> > using glFlush() to have the compositing manager update the
> > framebuffer for single buffered GLX clients is correct
>
> In theory yes, in practice... there are applications out there which do
> calls to glFlush at the weirdest times. And others that don't even
> bother.
Those are bugs and will be fixed once proper use of glFlush() is required.
> > but I don't think there's an equivalent to glFlush() in the core X11
> > rendering, is there?
>
> From XFlush(3x)
>
> The XFlush function flushes the output buffer. Most client applica-
> tions need not use this function because the output buffer is automati-
> cally flushed as needed by calls to XPending, XNextEvent, and XWindow-
> Event. Events generated by the server may be enqueued into the
> library's event queue.
>
> The XSync function flushes the output buffer and then waits until all
> requests have been received and processed by the X server. Any errors
> generated must be handled by the error handler. For each protocol
> error received by Xlib, XSync calls the client application's error han-
> dling routine (see section 11.8.2). Any events generated by the server
> are enqueued into the library's event queue.
>
> Finally, if you passed False, XSync does not discard the events in the
> queue. If you passed True, XSync discards all events in the queue,
> including those events that were on the queue before XSync was called.
> Client applications seldom need to call XSync.
But does XFlush()/XSync() cause a request or is it handled completely in
Xlib?
--ms