On Tue, Mar 4, 2008 at 5:34 PM, Michael Lorenz <[EMAIL PROTECTED]> 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
[email protected]
http://XFree86.Org/mailman/listinfo/devel