rpms/xorg-x11-server/F-12 xserver-1.7.0-exa-looping-forever-is-evil.patch, NONE, 1.1 xorg-x11-server.spec, 1.493, 1.494

Ben Skeggs bskeggs at fedoraproject.org
Fri Oct 9 00:15:38 UTC 2009


Author: bskeggs

Update of /cvs/pkgs/rpms/xorg-x11-server/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4885

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.7.0-exa-looping-forever-is-evil.patch 
Log Message:
* Fri Oct 09 2009 Ben Skeggs <bskeggs at redhat.com> 1.7.0-3
- xserver-1.7.0-exa-looping-forever-is-evil.patch: Fix rendercheck hang



xserver-1.7.0-exa-looping-forever-is-evil.patch:
 exa_render.c |   35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

--- NEW FILE xserver-1.7.0-exa-looping-forever-is-evil.patch ---
>From 73e0b5744403cd24399bfca169cf639d63736ac2 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs at redhat.com>
Date: Fri, 9 Oct 2009 09:24:05 +1000
Subject: [PATCH] EXA: fix exaGetRGBAFromPixel to not loop forever on PICT_a8 pictures

Easily reproducible by running "rendercheck -t fill".

It should be safe to just test against rbits for all colour components
as we should always have values for r/g/bbits for PICT_FORMAT_COLOR
formats.

Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
---
 exa/exa_render.c |   34 ++++++++++++++++++++--------------
 1 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/exa/exa_render.c b/exa/exa_render.c
index 1c18566..70701a2 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -204,22 +204,28 @@ exaGetRGBAFromPixel(CARD32	pixel,
     bshift = pFormat->direct.blue;
     ashift = pFormat->direct.alpha;
 
-    *red = ((pixel >> rshift ) & ((1 << rbits) - 1)) << (16 - rbits);
-    while (rbits < 16) {
-	*red |= *red >> rbits;
-	rbits <<= 1;
-    }
+    if (rbits) {
+	*red = ((pixel >> rshift ) & ((1 << rbits) - 1)) << (16 - rbits);
+	while (rbits < 16) {
+	    *red |= *red >> rbits;
+	    rbits <<= 1;
+	}
 
-    *green = ((pixel >> gshift ) & ((1 << gbits) - 1)) << (16 - gbits);
-    while (gbits < 16) {
-	*green |= *green >> gbits;
-	gbits <<= 1;
-    }
+	*green = ((pixel >> gshift ) & ((1 << gbits) - 1)) << (16 - gbits);
+	while (gbits < 16) {
+	    *green |= *green >> gbits;
+	    gbits <<= 1;
+	}
 
-    *blue = ((pixel >> bshift ) & ((1 << bbits) - 1)) << (16 - bbits);
-    while (bbits < 16) {
-	*blue |= *blue >> bbits;
-	bbits <<= 1;
+	*blue = ((pixel >> bshift ) & ((1 << bbits) - 1)) << (16 - bbits);
+	while (bbits < 16) {
+	    *blue |= *blue >> bbits;
+	    bbits <<= 1;
+	}
+    } else {
+	*red = 0x0000;
+	*green = 0x0000;
+	*blue = 0x0000;
     }
 
     if (abits) {
-- 
1.6.5.rc2



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-12/xorg-x11-server.spec,v
retrieving revision 1.493
retrieving revision 1.494
diff -u -p -r1.493 -r1.494
--- xorg-x11-server.spec	8 Oct 2009 20:12:01 -0000	1.493
+++ xorg-x11-server.spec	9 Oct 2009 00:15:38 -0000	1.494
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.7.0
-Release:   2%{dist}
+Release:   3%{dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -74,6 +74,8 @@ Patch6033: xserver-1.6.99-default-modes.
 Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
 Patch6045: xserver-1.7.0-randr-gamma-restore.patch
 
+Patch6046: xserver-1.7.0-exa-looping-forever-is-evil.patch
+
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
 %define sdkdir		%{_includedir}/xorg
@@ -501,6 +503,9 @@ rm -rf $RPM_BUILD_ROOT
 %{xserver_source_dir}
 
 %changelog
+* Fri Oct 09 2009 Ben Skeggs <bskeggs at redhat.com> 1.7.0-3
+- xserver-1.7.0-exa-looping-forever-is-evil.patch: Fix rendercheck hang
+
 * Thu Oct 08 2009 Adam Jackson <ajax at redhat.com> 1.7.0-2
 - xserver-1.7.0-randr-gamma-restore.patch: Restore CRTC gamma on EnterVT.
 




More information about the fedora-extras-commits mailing list