rpms/xorg-x11-server/FC-5 xorg-x11-server-1.0.99.901-render-x4a4-crash.patch, NONE, 1.1 xorg-x11-server.spec, 1.47, 1.48

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Apr 24 19:10:44 UTC 2006


Author: ajackson

Update of /cvs/dist/rpms/xorg-x11-server/FC-5
In directory cvs.devel.redhat.com:/tmp/cvs-serv8364

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xorg-x11-server-1.0.99.901-render-x4a4-crash.patch 
Log Message:
- Backport a Render crash fix from HEAD


xorg-x11-server-1.0.99.901-render-x4a4-crash.patch:
 fb/fbcompose.c   |   25 ++++++++++++++++++++++++-
 render/picture.c |    8 ++++++--
 render/picture.h |    9 +++++++++
 3 files changed, 39 insertions(+), 3 deletions(-)

--- NEW FILE xorg-x11-server-1.0.99.901-render-x4a4-crash.patch ---
--- ./render/picture.c.render-x4a4-crash	2006-03-08 01:19:37.000000000 -0500
+++ ./render/picture.c	2006-04-24 13:43:57.000000000 -0400
@@ -234,10 +234,14 @@
     formats[nformats].format = PICT_a1;
     formats[nformats].depth = 1;
     nformats++;
-    formats[nformats].format = PICT_a8;
+    formats[nformats].format = PICT_FORMAT(BitsPerPixel(8),
+					   PICT_TYPE_A,
+					   8, 0, 0, 0);
     formats[nformats].depth = 8;
     nformats++;
-    formats[nformats].format = PICT_a4;
+    formats[nformats].format = PICT_FORMAT(BitsPerPixel(4),
+					   PICT_TYPE_A,
+					   4, 0, 0, 0);
     formats[nformats].depth = 4;
     nformats++;
     formats[nformats].format = PICT_a8r8g8b8;
--- ./render/picture.h.render-x4a4-crash	2005-08-24 07:18:33.000000000 -0400
+++ ./render/picture.h	2006-04-24 13:43:57.000000000 -0400
@@ -100,6 +100,15 @@
 #define PICT_c8		PICT_FORMAT(8,PICT_TYPE_COLOR,0,0,0,0)
 #define PICT_g8		PICT_FORMAT(8,PICT_TYPE_GRAY,0,0,0,0)
 
+#define PICT_x4a4	PICT_FORMAT(8,PICT_TYPE_A,4,0,0,0)
+#define PICT_x4r1g2b1	PICT_FORMAT(8,PICT_TYPE_ARGB,0,1,2,1)
+#define PICT_x4b1g2r1	PICT_FORMAT(8,PICT_TYPE_ABGR,0,1,2,1)
+#define PICT_x4a1r1g1b1	PICT_FORMAT(8,PICT_TYPE_ARGB,1,1,1,1)
+#define PICT_x4a1b1g1r1	PICT_FORMAT(8,PICT_TYPE_ABGR,1,1,1,1)
+				    
+#define PICT_x4c4	PICT_FORMAT(8,PICT_TYPE_COLOR,0,0,0,0)
+#define PICT_x4g4	PICT_FORMAT(8,PICT_TYPE_GRAY,0,0,0,0)
+
 /* 4bpp formats */
 #define PICT_a4		PICT_FORMAT(4,PICT_TYPE_A,4,0,0,0)
 #define PICT_r1g2b1	PICT_FORMAT(4,PICT_TYPE_ARGB,0,1,2,1)
--- ./fb/fbcompose.c.render-x4a4-crash	2006-02-10 17:00:21.000000000 -0500
+++ ./fb/fbcompose.c	2006-04-24 13:43:57.000000000 -0400
@@ -385,6 +385,17 @@
     }
 }
 
+static FASTCALL void
+fbFetch_x4a4 (const FbBits *bits, int x, int width, CARD32 *buffer, miIndexedPtr indexed)
+{
+    const CARD8 *pixel = (const CARD8 *)bits + x;
+    const CARD8 *end = pixel + width;
+    while (pixel < end) {
+	CARD8 p = (*pixel++) & 0xf;
+        *buffer++ = (p | (p << 4)) << 24;
+    }
+}
+
 #define Fetch8(l,o)    (((CARD8 *) (l))[(o) >> 2])
 #if IMAGE_BYTE_ORDER == MSBFirst
 #define Fetch4(l,o)    ((o) & 2 ? Fetch8(l,o) & 0xf : Fetch8(l,o) >> 4)
@@ -548,7 +559,8 @@
     case PICT_a2b2g2r2: return fbFetch_a2b2g2r2;
     case PICT_c8: return  fbFetch_c8;
     case PICT_g8: return  fbFetch_c8;
-
+    case PICT_x4a4: return fbFetch_x4a4;
+    
         /* 4bpp formats */
     case PICT_a4: return  fbFetch_a4;
     case PICT_r1g2b1: return fbFetch_r1g2b1;
@@ -1261,6 +1273,16 @@
     }
 }
 
+static FASTCALL void
+fbStore_x4a4 (FbBits *bits, const CARD32 *values, int x, int width, miIndexedPtr indexed)
+{
+    int i;
+    CARD8   *pixel = ((CARD8 *) bits) + x;
+    for (i = 0; i < width; ++i) {
+        *pixel++ = values[i] >> 28;
+    }
+}
+
 #define Store8(l,o,v)  (((CARD8 *) l)[(o) >> 3] = (v))
 #if IMAGE_BYTE_ORDER == MSBFirst
 #define Store4(l,o,v)  Store8(l,o,((o) & 4 ? \
@@ -1412,6 +1434,7 @@
     case PICT_a2r2g2b2: return fbStore_a2r2g2b2;
     case PICT_c8: return  fbStore_c8;
     case PICT_g8: return  fbStore_c8;
+    case PICT_x4a4: return fbStore_x4a4;
 
         /* 4bpp formats */
     case PICT_a4: return  fbStore_a4;


Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11-server/FC-5/xorg-x11-server.spec,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- xorg-x11-server.spec	9 Apr 2006 16:26:07 -0000	1.47
+++ xorg-x11-server.spec	24 Apr 2006 19:10:21 -0000	1.48
@@ -4,7 +4,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.0.1
-Release:   9.fc5
+Release:   9.fc5.1
 URL:       http://www.x.org
 License:   MIT/X11
 Group:     User Interface/X
@@ -33,6 +33,7 @@
 # Patches taken from xserver/xorg CVS HEAD, post-1.0.1
 Patch100:  xorg-x11-server-1.0.1-fbpict-fix-rounding.patch
 Patch101:  xorg-x11-server-1.0.1-SEGV-on-null-interface.patch
+Patch102:  xorg-x11-server-1.0.99.901-render-x4a4-crash.patch
 
 Patch1000:  xorg-redhat-die-ugly-pattern-die-die-die.patch
 Patch1001:  xorg-x11-server-1.0.1-Red-Hat-extramodes.patch
@@ -252,6 +253,7 @@
 
 %patch100 -p2 -b .fbpict-fix-rounding
 %patch101 -p2 -b .SEGV-on-null-interface
+%patch102 -p0 -b .render-x4a4-crash
 
 %patch1000 -p0 -b .redhat-die-ugly-pattern-die-die-die
 %patch1001 -p1 -b .Red-Hat-extramodes
@@ -528,6 +530,9 @@
 # -------------------------------------------------------------------
 
 %changelog
+* Mon Apr 24 2006 Adam Jackson <ajackson at redhat.com> - 1.0.1-9.fc5.1
+- Backport a Render crash fix from HEAD
+
 * Sun Apr  9 2006 Ray Strode <rstrode at redhat.com> - 1.0.1-9.fc5
 - Fix small overflow that causes crash on vt switch on ppc.
   Patch by David Woodhouse (bug 187083).




More information about the fedora-cvs-commits mailing list