On Sat, 28 Jun 2003, Philip Brown wrote:

> >Mark Vojkovich wrote:
> >
> >  pPixmap->devPrivate is the pointer to the memory, but this
> >is dynamic.  Pixmaps get migrated back and forth between video
> >and system ram.  So you need to check it every time you reenter
> >your code.
> 
> 
> oops.   
> 
> The bitblit routines are rather hairy to follow, so I hope you dont mind me
> also asking; what are the pitfalls of me creating a pixmap myself?

   The hardware won't be able to render to it.  XAA only knows that it's
a hardware surface because it allocated it.  In the new XAA, it's the
driver that does the allocation since there are problem with XAA
trying to allocate it as it does currently.  XAA doesn't know enough
about the hardware contraints to do a good job of it.  Also, they do 
need to get migrated between video ram and system memory.  They can't
stay in video ram when you switch VTs.

> 
> The constraints are that I want to be able to allocate an offscreen memory
> chunk myself via xf86AllocateLinear, then create a pixmap around it, and
> then be able to use the accelerated bitblit routines via 
> gc->ops->CopyArea()

   You'll never get this working properly.  Even XAA can't use
xf86AllocateLinear because it doesn't know about hardware alignment
contraints.  In XAA, the root window extends downward and offscreen
pixmaps are just windows that are offscreen.  There is no mechanism
to take a linear allocation and make a hardware pixmap out of it.
The XFree86 5.0 XAA deals with this by leaving it all to the driver.

                        Mark.

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to