Hi!

Dnia 19-11-2004, pią o godzinie 12:24 -0500, Michel Dänzer napisał(a):
> On Fri, 2004-11-19 at 12:51 +0100, Jacek Rosik wrote:
> > 
> > Am Fr, den 19.11.2004 schrieb Keith Whitwell um 12:14:
> > > 
> > >   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.
> 
> The 2D acceleration hooks could check whether the coordinates are within
> the virtual screen size and adjust the buffer offsets accordingly.
> Nasty, but seems feasible.
> 
> > For now I would also vote for #2. This could help some other things (eg.
> > GLcore could render directly into back buffer). But I think we need
> > combination of both. Method #2 won't do for stereo. There You have two
> > frontbuffers and everything rendered by X server should appear in both
> > buffers.
> 
> How is that different from page flipping, where the X rendering has to
> appear in all buffers as well?

As Keith wrote, the problem is when you combine X drawing with GL
drawing. For current page flipping we have front and back buffers. When
we do some X drawing it should appear in *current* front buffer (it may
actually be front or back if pages are flipped). This drawing should not
appear in back buffer, as X doesn't know about back buffer and it may
destroy GL image in back. For stereo we have two front buffers and two
back buffers. X drawing has to appear in both front buffers. Simple
dirty rectangle copying from left buffer will not work as it may destroy
contents of left buffer which may be different, we should draw things
twice.


> > BTW: What is the reason that fb has alway width equal to virtual desktop
> > width (pScrn->displayWidth)? I think that Alan Hourihane said that
> > different width would screw up accelerator. But I don't see why.
> 
> The accelerator imposes restrictions on the alignment of the pitch, so
> they're actually not always the same but happen to be for most
> resolutions commonly used today.

So accelerator may work on some fixed set of pitches if I understand
properly.

> Curious, why would you want a pitch that's larger than the required
> minimum?

I was just curious too ;). For stereo we have four color buffers so we
use a lot of pixmap cache. I thought that placing left buffers left will
leave more pixmap cache for X. I was thinking also about allocating more
than one depth/stencil buffer which would reduce reduce amount of pixmap
cache further.

Best,
-- 
Jacek Rosik <[EMAIL PROTECTED]>



-------------------------------------------------------
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