Re: xaa vs. WriteImage()
Michael Lorenz <[email protected]> Tue, 4 Mar 2008 17:34:10 -0500
| Newsgroups | gmane.comp.xfree86.devel |
|---|---|
| Message-ID | <[email protected]> |
-----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?
have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iQEVAwUBR83OYspnzkX8Yg2nAQJNnAf/auo5d5PGw/M8IpvL+GIoCXL7ME2QGMsp
Wv6wSrZ9ONA+uFEI/ppUBF10gwdXulEMuXy6bVyqzTGzRDCl3xxmF2f0IVuo6MWX
/Ar+rg7wHJgnl94UUQnX6z02mBS3ldx/f9U534KqjmrUsnU8nx00AHe07hQRHBrE
m0gPaiO2/ueX5IXmtVS1S+TmV6tkQ2UKp+sZjflHEp7078kV9wQkC8A7ImkOPhxe
DBkRLt76uGR6YUlvivHAMxpdqBiIbxBLWpd1mg65/Cw48uJD850j3BoAGFZqDl+x
sPadDNC6yxY4/5c/Oq4vEo2Fcss87PdNQbow9YR9m9AEmsktK5DS5Q==
=hzKc
-----END PGP SIGNATURE-----