Re: xaa vs. WriteImage()

2008-03-04 Thread Michael Lorenz

-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 -   1.1.1.3
+++ xaaCpyArea.c3 Mar 2008 20:51:05 -
@@ -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-
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: xaa vs. WriteImage()

2008-03-04 Thread Marc Aurele La France

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 -   1.1.1.3
+++ xaaCpyArea.c3 Mar 2008 20:51:05 -
@@ -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).



have fun


Always.

Marc.

+--+--+
|  Marc Aurele La France   |  work:   1-780-492-9310  |
|  Academic Information and|  fax:1-780-492-1729  |
|Communications Technologies   |  email:  [EMAIL PROTECTED] |
|  352 General Services Building   +--+
|  University of Alberta   |  |
|  Edmonton, Alberta   |Standard disclaimers apply|
|  T6G 2H1 |  |
|  CANADA  |  |
+--+--+
XFree86 developer and VP.  ATI driver and X server internals.
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel