On Tue, Mar 4, 2008 at 5:34 PM, Michael Lorenz <macallan@xxxxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello, > > > On Mar 4, 2008, at 15:37, Marc Aurele La France wrote: > > > On Mon, 3 Mar 2008, Michael Lorenz wrote: > > > >> I noticed the following - XAACopyArea() only attempts to use > >> accelerated WriteImage() when writing to a DRAWABLE_WINDOW but not > >> on off-screen pixmaps. I used the following changes to make it work: > > > >> diff -u -w -r1.1.1.3 xaaCpyArea.c > >> - --- xaaCpyArea.c 9 Jun 2001 15:09:02 -0000 1.1.1.3 > >> +++ xaaCpyArea.c 3 Mar 2008 20:51:05 -0000 > >> @@ -64,9 +64,16 @@ > >> return (XAABitBlt( pSrcDrawable, pDstDrawable, > >> pGC, srcx, srcy, width, height, dstx, dsty, > >> XAADoBitBlt, 0L)); > >> + } else { > >> + if(infoRec->ScreenToScreenBitBlt && > >> + CHECK_ROP(pGC,infoRec->ScreenToScreenBitBltFlags) && > >> + CHECK_ROPSRC(pGC,infoRec->ScreenToScreenBitBltFlags) && > >> + CHECK_PLANEMASK(pGC,infoRec->ScreenToScreenBitBltFlags)) > >> + return (XAABitBlt( pSrcDrawable, pDstDrawable, > >> + pGC, srcx, srcy, width, height, dstx, dsty, > >> + XAADoImageWrite, 0L)); > >> } > >> } > > > > This does not look correct. Shouldn't this be more in line with > > the case where the destination drawable is a window? (i.e. test > > bitsPerPixel's and WritePixmap files instead of ScreenToScreenBitBlt). > > The whole logic looks a little bit fishy, I used the first if()'s > source-in-memory branch first but wasn't quite sure if that's doing > the right thing, where it;s now looked better to me but I won't claim > I completely understand XAA's inner voodoo. All I want is the make > XAA use ImageWrite()s for all RAM-to-VRAM transfers if the driver > supports it. > Otherwise, teaching the framebuffer layer to cope with a tiled > framebuffer might be necessary in the long run, any pointers where to > start? Several drivers (radeon, intel, savage) in the Xorg tree provide support for various tiling methods. Generally the chip provides a surface control or aperture for exposing a tiled region to the CPU as a linear surface. For acceleration, you have to keep track of what buffers are tiled in the driver and do the right thing with the blitter when using those surfaces. Alex _______________________________________________ Devel mailing list Devel@xxxxxxxxxxx http://XFree86.Org/mailman/listinfo/devel