xserver: Branch 'master' - 3 commits

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Mon Jun 11 11:19:47 PDT 2007


 fb/fbcopy.c |   18 ++++++---------
 fb/fbfill.c |    5 +++-
 fb/fbmmx.c  |   69 +++++++++++++++++++++---------------------------------------
 fb/fbmmx.h  |   32 ++++++++++++++-------------
 4 files changed, 53 insertions(+), 71 deletions(-)

New commits:
diff-tree d06099b38e8445e6e31f5178ffefcc31a71080ef (from d4a034370c8ae71b2cc4fe824ceee58b19624f35)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Mon Jun 11 13:28:24 2007 -0400

    Remove fbCopyAreammx() and fbSolidFillmmx()

diff --git a/fb/fbmmx.c b/fb/fbmmx.c
index 6a593ff..3522a00 100644
--- a/fb/fbmmx.c
+++ b/fb/fbmmx.c
@@ -202,26 +202,6 @@ fbFillmmx (FbBits *bits,
 }
 
 Bool
-fbSolidFillmmx (DrawablePtr	pDraw,
-		int		x,
-		int		y,
-		int		width,
-		int		height,
-		FbBits		xor)
-{ 
-    FbStride	stride;
-    int		bpp;
-    FbBits      *bits;
-    int		xoff, yoff;
-    
-    CHECKPOINT();
-    
-    fbGetDrawable(pDraw, bits, stride, bpp, xoff, yoff);
-
-    return fbFillmmx (bits, stride, bpp, x + xoff, y + yoff, width, height, xor);
-}
-
-Bool
 fbBltmmx (FbBits *src_bits,
 	  FbBits *dst_bits,
 	  FbStride src_stride,
@@ -357,36 +337,5 @@ fbBltmmx (FbBits *src_bits,
     return TRUE;
 }
 
-Bool
-fbCopyAreammx (DrawablePtr	pSrc,
-	       DrawablePtr	pDst,
-	       int		src_x,
-	       int		src_y,
-	       int		dst_x,
-	       int		dst_y,
-	       int		width,
-	       int		height)
-{
-    FbBits *	src_bits;
-    FbStride	src_stride;
-    int		src_bpp;
-    int		src_xoff;
-    int		src_yoff;
-
-    FbBits *	dst_bits;
-    FbStride	dst_stride;
-    int		dst_bpp;
-    int		dst_xoff;
-    int		dst_yoff;
-    
-    fbGetDrawable(pSrc, src_bits, src_stride, src_bpp, src_xoff, src_yoff);
-    fbGetDrawable(pDst, dst_bits, dst_stride, dst_bpp, dst_xoff, dst_yoff);
-
-    return fbBltmmx (src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
-		     src_x + src_xoff, src_y + src_yoff,
-		     dst_x + dst_xoff, dst_y + dst_yoff,
-		     width, height);
-}
-
 #endif /* RENDER */
 #endif /* USE_MMX */
diff --git a/fb/fbmmx.h b/fb/fbmmx.h
index dda395a..7d32a38 100644
--- a/fb/fbmmx.h
+++ b/fb/fbmmx.h
@@ -53,14 +53,6 @@ Bool fbBltmmx (FbBits *src_bits,
 	       int src_x, int src_y,
 	       int dst_x, int dst_y,
 	       int width, int height);
-Bool fbCopyAreammx (DrawablePtr	pSrc,
-		    DrawablePtr	pDst,
-		    int		src_x,
-		    int		src_y,
-		    int		dst_x,
-		    int		dst_y,
-		    int		width,
-		    int		height);
 Bool fbFillmmx (FbBits *bits,
 		FbStride stride,
 		int bpp,
@@ -69,11 +61,4 @@ Bool fbFillmmx (FbBits *bits,
 		int width,
 		int height,
 		FbBits xor);
-Bool fbSolidFillmmx (DrawablePtr	pDraw,
-		     int		x,
-		     int		y,
-		     int		width,
-		     int		height,
-		     FbBits		xor);
-
 #endif /* USE_MMX */
diff-tree d4a034370c8ae71b2cc4fe824ceee58b19624f35 (from 3210902a7334f3d8d6c18a34a3cb3f55803b0043)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Mon Jun 11 13:26:24 2007 -0400

    Split fbSolidFillmmx() into a new FbFillmmx() function. Call that from fbFill().

diff --git a/fb/fbfill.c b/fb/fbfill.c
index 7ef3a70..35e4427 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -49,10 +49,13 @@ fbFill (DrawablePtr pDrawable,
     case FillSolid:
 #ifdef USE_MMX
 	if (!pPriv->and && fbHaveMMX())
-	    if (fbSolidFillmmx (pDrawable, x, y, width, height, pPriv->xor)) {
+	{
+	    if (fbFillmmx (dst, dstStride, dstBpp, x + dstXoff, y + dstYoff, width, height, pPriv->xor))
+	    {
 		fbFinishAccess (pDrawable);
 		return;
 	    }
+	}
 #endif	    
 	fbSolid (dst + (y + dstYoff) * dstStride, 
 		 dstStride, 
diff --git a/fb/fbmmx.c b/fb/fbmmx.c
index 7fb4b15..6a593ff 100644
--- a/fb/fbmmx.c
+++ b/fb/fbmmx.c
@@ -74,29 +74,23 @@ typedef __m64 mmxdatafield;
 #endif
 
 Bool
-fbSolidFillmmx (DrawablePtr	pDraw,
-		int		x,
-		int		y,
-		int		width,
-		int		height,
-		FbBits		xor)
-{ 
-    FbStride	stride;
-    int		bpp;
+fbFillmmx (FbBits *bits,
+	   FbStride stride,
+	   int bpp,
+	   int x,
+	   int y,
+	   int width,
+	   int height,
+	   FbBits xor)
+{
     ullong	fill;
     __m64	vfill;
     CARD32	byte_width;
     CARD8	*byte_line;
-    FbBits      *bits;
-    int		xoff, yoff;
 #ifdef __GNUC__
     __m64	v1, v2, v3, v4, v5, v6, v7;
 #endif
     
-    CHECKPOINT();
-    
-    fbGetDrawable(pDraw, bits, stride, bpp, xoff, yoff);
-    
     if (bpp == 16 && (xor >> 16 != (xor & 0xffff)))
 	return FALSE;
     
@@ -106,14 +100,14 @@ fbSolidFillmmx (DrawablePtr	pDraw,
     if (bpp == 16)
     {
 	stride = stride * sizeof (FbBits) / 2;
-	byte_line = (CARD8 *)(((CARD16 *)bits) + stride * (y + yoff) + (x + xoff));
+	byte_line = (CARD8 *)(((CARD16 *)bits) + stride * y + x);
 	byte_width = 2 * width;
 	stride *= 2;
     }
     else
     {
 	stride = stride * sizeof (FbBits) / 4;
-	byte_line = (CARD8 *)(((CARD32 *)bits) + stride * (y + yoff) + (x + xoff));
+	byte_line = (CARD8 *)(((CARD32 *)bits) + stride * y + x);
 	byte_width = 4 * width;
 	stride *= 4;
     }
@@ -208,6 +202,26 @@ fbSolidFillmmx (DrawablePtr	pDraw,
 }
 
 Bool
+fbSolidFillmmx (DrawablePtr	pDraw,
+		int		x,
+		int		y,
+		int		width,
+		int		height,
+		FbBits		xor)
+{ 
+    FbStride	stride;
+    int		bpp;
+    FbBits      *bits;
+    int		xoff, yoff;
+    
+    CHECKPOINT();
+    
+    fbGetDrawable(pDraw, bits, stride, bpp, xoff, yoff);
+
+    return fbFillmmx (bits, stride, bpp, x + xoff, y + yoff, width, height, xor);
+}
+
+Bool
 fbBltmmx (FbBits *src_bits,
 	  FbBits *dst_bits,
 	  FbStride src_stride,
diff --git a/fb/fbmmx.h b/fb/fbmmx.h
index a529526..dda395a 100644
--- a/fb/fbmmx.h
+++ b/fb/fbmmx.h
@@ -61,6 +61,14 @@ Bool fbCopyAreammx (DrawablePtr	pSrc,
 		    int		dst_y,
 		    int		width,
 		    int		height);
+Bool fbFillmmx (FbBits *bits,
+		FbStride stride,
+		int bpp,
+		int x,
+		int y,
+		int width,
+		int height,
+		FbBits xor);
 Bool fbSolidFillmmx (DrawablePtr	pDraw,
 		     int		x,
 		     int		y,
diff-tree 3210902a7334f3d8d6c18a34a3cb3f55803b0043 (from 8d5f4368eac1b259db3e61f877a4cc10f04efa2f)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Mon Jun 11 13:14:50 2007 -0400

    Split fbCopyAreammx() into a new fbBltmmx() function; call this
    
    function from fbCopyNToN().

diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 164cd3d..74ff358 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -64,17 +64,13 @@ fbCopyNtoN (DrawablePtr	pSrcDrawable,
 	if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
 	    !upsidedown && fbHaveMMX())
 	{
-	    if (!fbCopyAreammx (pSrcDrawable,
-				pDstDrawable,
-				
-				(pbox->x1 + dx),
-				(pbox->y1 + dy),
-				
-				(pbox->x1),
-				(pbox->y1),
-				
-				(pbox->x2 - pbox->x1),
-				(pbox->y2 - pbox->y1)))
+	    if (!fbBltmmx (src, dst, srcStride, dstStride, srcBpp, dstBpp,
+			   (pbox->x1 + dx + srcXoff),
+			   (pbox->y1 + dy + srcYoff),
+			   (pbox->x1 + srcXoff),
+			   (pbox->y1 + srcYoff),
+			   (pbox->x2 - pbox->x1),
+			   (pbox->y2 - pbox->y1)))
 		goto fallback;
 	    else
 		goto next;
diff --git a/fb/fbmmx.c b/fb/fbmmx.c
index b2fe94b..7fb4b15 100644
--- a/fb/fbmmx.c
+++ b/fb/fbmmx.c
@@ -208,34 +208,20 @@ fbSolidFillmmx (DrawablePtr	pDraw,
 }
 
 Bool
-fbCopyAreammx (DrawablePtr	pSrc,
-	       DrawablePtr	pDst,
-	       int		src_x,
-	       int		src_y,
-	       int		dst_x,
-	       int		dst_y,
-	       int		width,
-	       int		height)
+fbBltmmx (FbBits *src_bits,
+	  FbBits *dst_bits,
+	  FbStride src_stride,
+	  FbStride dst_stride,
+	  int src_bpp,
+	  int dst_bpp,
+	  int src_x, int src_y,
+	  int dst_x, int dst_y,
+	  int width, int height)
 {
-    FbBits *	src_bits;
-    FbStride	src_stride;
-    int		src_bpp;
-    int		src_xoff;
-    int		src_yoff;
-
-    FbBits *	dst_bits;
-    FbStride	dst_stride;
-    int		dst_bpp;
-    int		dst_xoff;
-    int		dst_yoff;
-
     CARD8 *	src_bytes;
     CARD8 *	dst_bytes;
     int		byte_width;
     
-    fbGetDrawable(pSrc, src_bits, src_stride, src_bpp, src_xoff, src_yoff);
-    fbGetDrawable(pDst, dst_bits, dst_stride, dst_bpp, dst_xoff, dst_yoff);
-
     if (src_bpp != dst_bpp)
 	return FALSE;
     
@@ -243,16 +229,16 @@ fbCopyAreammx (DrawablePtr	pSrc,
     {
 	src_stride = src_stride * sizeof (FbBits) / 2;
 	dst_stride = dst_stride * sizeof (FbBits) / 2;
-	src_bytes = (CARD8 *)(((CARD16 *)src_bits) + src_stride * (src_y + src_yoff) + (src_x + src_xoff));
-	dst_bytes = (CARD8 *)(((CARD16 *)dst_bits) + dst_stride * (dst_y + dst_yoff) + (dst_x + dst_xoff));
+	src_bytes = (CARD8 *)(((CARD16 *)src_bits) + src_stride * (src_y) + (src_x));
+	dst_bytes = (CARD8 *)(((CARD16 *)dst_bits) + dst_stride * (dst_y) + (dst_x));
 	byte_width = 2 * width;
 	src_stride *= 2;
 	dst_stride *= 2;
     } else if (src_bpp == 32) {
 	src_stride = src_stride * sizeof (FbBits) / 4;
 	dst_stride = dst_stride * sizeof (FbBits) / 4;
-	src_bytes = (CARD8 *)(((CARD32 *)src_bits) + src_stride * (src_y + src_yoff) + (src_x + src_xoff));
-	dst_bytes = (CARD8 *)(((CARD32 *)dst_bits) + dst_stride * (dst_y + dst_yoff) + (dst_x + dst_xoff));
+	src_bytes = (CARD8 *)(((CARD32 *)src_bits) + src_stride * (src_y) + (src_x));
+	dst_bytes = (CARD8 *)(((CARD32 *)dst_bits) + dst_stride * (dst_y) + (dst_x));
 	byte_width = 4 * width;
 	src_stride *= 4;
 	dst_stride *= 4;
@@ -353,8 +339,40 @@ fbCopyAreammx (DrawablePtr	pSrc,
     }
     
     _mm_empty();
+
     return TRUE;
 }
 
+Bool
+fbCopyAreammx (DrawablePtr	pSrc,
+	       DrawablePtr	pDst,
+	       int		src_x,
+	       int		src_y,
+	       int		dst_x,
+	       int		dst_y,
+	       int		width,
+	       int		height)
+{
+    FbBits *	src_bits;
+    FbStride	src_stride;
+    int		src_bpp;
+    int		src_xoff;
+    int		src_yoff;
+
+    FbBits *	dst_bits;
+    FbStride	dst_stride;
+    int		dst_bpp;
+    int		dst_xoff;
+    int		dst_yoff;
+    
+    fbGetDrawable(pSrc, src_bits, src_stride, src_bpp, src_xoff, src_yoff);
+    fbGetDrawable(pDst, dst_bits, dst_stride, dst_bpp, dst_xoff, dst_yoff);
+
+    return fbBltmmx (src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
+		     src_x + src_xoff, src_y + src_yoff,
+		     dst_x + dst_xoff, dst_y + dst_yoff,
+		     width, height);
+}
+
 #endif /* RENDER */
 #endif /* USE_MMX */
diff --git a/fb/fbmmx.h b/fb/fbmmx.h
index 4796438..a529526 100644
--- a/fb/fbmmx.h
+++ b/fb/fbmmx.h
@@ -44,6 +44,15 @@ Bool fbHaveMMX(void);
 
 #ifdef USE_MMX
 
+Bool fbBltmmx (FbBits *src_bits,
+	       FbBits *dst_bits,
+	       FbStride src_stride,
+	       FbStride dst_stride,
+	       int src_bpp,
+	       int dst_bpp,
+	       int src_x, int src_y,
+	       int dst_x, int dst_y,
+	       int width, int height);
 Bool fbCopyAreammx (DrawablePtr	pSrc,
 		    DrawablePtr	pDst,
 		    int		src_x,


More information about the xorg-commit mailing list