Jacek Rosik wrote:
Hi!

Am Fr, den 19.11.2004 schrieb Keith Whitwell um 10:50:

As Alan points out, we blit the dirty regions to the back buffer rather than re-rendering everything multiple times. This was the easiest scheme to implement, and has a big speed advantage for fallback and complex rendering. It is however the reason that the current page-flipping code isn't strictly conformant, as the situation where X11 and GL rendering to the same drawable simultaneously isn't handled correctly in all circumstances.


Do You mean that X rendering should go only into front buffer. I tried
to fix that situation. I just skip shadowfb updates to areas covered by
3d windows, this was necessary to solve some problems with moving
windows and stereo.

Well, X rendering needs to be propogated to all three buffers somehow. The problem with the current situation is that the 'real' rendering only happens on buffer 0, and the dirty rectangle is blitted to the other buffers. Imagine you are doing Xlib drawing to a window which is also being used for OpenGL frontbuffer rendering - this works OK if buffer 0 is the frontbuffer (or if you aren't pageflipping), but if say buffer 1 is the current frontbuffer, when the dirty rectangle is blitted from buffer 0, the whole rectangle will overwrite whatever GL rendering had been going on.


There are two ways I can see to fix this:

1) Do all drawing three times, avoiding the rectangle-blits and possible corruption.

or
2) Make the X server do its drawing to the current frontbuffer (rather than just buffer 0), and then do the shadow-blits from that buffer.


2) is the more appealing option for me. I'm not sure how to get it to work in the context of the XAA pixmap cache which seems to be indexed from the same origin as X's idea of the frontbuffer.

Keith


------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to