magenta wrote:
AFAIK the rendering is guaranteed.On Tue, Jan 07, 2003 at 03:00:10PM -0700, Jens Owen wrote:Michel Daenzer wrote:I'm a little confused here. By traditional method are you referring to not using page flipping? What doesn't work in that method?This doesn't help mixed OpenGL and X11 rendering in the same window, but that supposedly doesn't work with the traditional method of drawing to the back buffer and then copying it over the front buffer either, so enable page flipping by default.
I thought that the glX spec said that mixing X11 and OpenGL within a single drawable wasn't guaranteed anyway, and only gave hints about things that might or might not work on certain implementations.
GLX Version 1.3, Section 2.2, Paragraphs 3 & 4 gives a good description of how the X and OpenGL rendering pipelines are expected to interact:
Issuing OpenGL commands may cause the X buffer to be flushed, In
particular, calling glFlush when indirect rendering is occuring,
will flush both the X and OpenGL rendering streams.
Some state is shared between the OpenGL and X. The pixel values
in the X frame buffer are shared. The X double buffer extension
(DBE) has a definition for which buffer is currently the displayed
buffer. This information is shared with GLX. The state of which
buffer is displayed tracks in both extensions, independent of which
extension initiates a buffer swap.
There is a description of the synchronization expectations in Section 2.7, paragraph 5:
Synchronization is in the hands of the client. If can be maintained
with moderate cost with the judicious use of the glFinish, glXWaitGL,
glXWaitX, and XSync commands. OpenGL and X rendering can be done in
parallel as long as the client does not preclude it with explicit
synchronization calls. This is true even when the rendering is
being done by the X server.
and again in Section 3.3.10, paragraph 3:
All GLX rendering context share the same notion of which are front
buffers and which are back buffers for a given drawable. This notion
is also shared with the X double buffer extension (DBE).
This last section really tweaked my memory. I had forgotten, but indirect rendering in our "traditional" implementation isn't compliant. For indirect contexts, we're not sharing the contents of the back buffer with direct rendering contexts.
There's some real interesting work that still needs to be done for indirect rendering, DBE and page flipping. If anyone's interested in improving this stuff, just speak up.
--
/\
Jens Owen / \/\ _
[EMAIL PROTECTED] / \ \ \ Steamboat Springs, Colorado
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel
