xserver: Branch 'master'

Aaron Plattner aplattner at kemper.freedesktop.org
Wed Jun 27 10:17:11 PDT 2007


 fb/fb.h     |    1 +
 fb/fbtile.c |   12 +++++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)

New commits:
diff-tree 1e189ed1daab58c1de67d387306fde0a9e7984a4 (from bf1ad1aa4270dccf1540943d97e80b317c0adb56)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Wed Jun 27 10:16:40 2007 -0700

    Handle tileStride > 1 in fbEvenTile.
    
    Patch courtesy of James Jones.

diff --git a/fb/fb.h b/fb/fb.h
index 655d5ae..1ecae47 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -2032,6 +2032,7 @@ fbEvenTile (FbBits	*dst,
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride	tileStride,
 	    int		tileHeight,
 
 	    int		alu,
diff --git a/fb/fbtile.c b/fb/fbtile.c
index e7df1af..a9ffa97 100644
--- a/fb/fbtile.c
+++ b/fb/fbtile.c
@@ -42,6 +42,7 @@ fbEvenTile (FbBits	*dst,
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride	tileStride,
 	    int		tileHeight,
 
 	    int		alu,
@@ -68,9 +69,9 @@ fbEvenTile (FbBits	*dst,
     /*
      * Compute tile start scanline and rotation parameters
      */
-    tileEnd = tile + tileHeight;
+    tileEnd = tile + tileHeight * tileStride;
     modulus (- yRot, tileHeight, tileY);
-    t = tile + tileY;
+    t = tile + tileY * tileStride;
     modulus (- xRot, FB_UNIT, tileX);
     rot = tileX;
     
@@ -80,8 +81,9 @@ fbEvenTile (FbBits	*dst,
 	/*
 	 * Pick up bits for this scanline
 	 */
-	bits = READ(t++);
-	if (t == tileEnd) t = tile;
+	bits = READ(t);
+	t += tileStride;
+	if (t >= tileEnd) t = tile;
 	bits = FbRotLeft(bits,rot);
 	and = fbAnd(alu,bits,pm);
 	xor = fbXor(alu,bits,pm);
@@ -194,7 +196,7 @@ fbTile (FbBits	    *dst,
 {
     if (FbEvenTile (tileWidth))
 	fbEvenTile (dst, dstStride, dstX, width, height, 
-		    tile, tileHeight,
+		    tile, tileStride, tileHeight,
 		    alu, pm, xRot, yRot);
     else
 	fbOddTile (dst, dstStride, dstX, width, height, 


More information about the xorg-commit mailing list