packages: xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch, xorg-...

arekm arekm at pld-linux.org
Sun May 29 09:38:26 CEST 2011


Author: arekm                        Date: Sun May 29 07:38:26 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 2; replace nvidia hack with proper checks

---- Files affected:
packages/xorg-xserver-server:
   xorg-xserver-server-nvidia-randr.patch (1.1 -> 1.2) , xorg-xserver-server.spec (1.279 -> 1.280) 

---- Diffs:

================================================================
Index: packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch
diff -u packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch:1.1 packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch:1.2
--- packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch:1.1	Tue Feb  8 11:24:29 2011
+++ packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch	Sun May 29 09:38:21 2011
@@ -1,39 +1,60 @@
-From d77ffa918b2aaa3ca1deb17ed0145199d0f863da Mon Sep 17 00:00:00 2001
-From: Julien Cristau <jcristau at debian.org>
-Date: Mon, 31 Jan 2011 13:14:47 +0000
-Subject: Revert "randr: check for virtual size limits before set crtc"
+commit 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd
+Author: Aaron Plattner <aplattner at nvidia.com>
+Date:   Tue May 24 16:02:42 2011 -0700
 
-Apparently these checks break rotation with the nvidia drivers:
-https://bbs.archlinux.org/viewtopic.php?pid=877761
-http://bugs.debian.org/611619
-Let's not do that in a stable branch.
+    randr: check rotated virtual size limits correctly
+    
+    Commit d1107918d4626268803b54033a07405122278e7f introduced checks to
+    the RandR path that cause RRSetScreenConfig requests to fail if the
+    size is too large.  Unfortunately, when RandR 1.1 rotation is enabled
+    it compares the rotated screen dimensions to the unrotated limits,
+    which causes 90- and 270-degree rotation to fail unless your screen
+    happens to be square:
+    
+      X Error of failed request:  BadValue (integer parameter out of range for operation)
+        Major opcode of failed request:  153 (RANDR)
+        Minor opcode of failed request:  2 (RRSetScreenConfig)
+        Value in failed request:  0x780
+        Serial number of failed request:  14
+        Current serial number in output stream:  14
+    
+    Fix this by moving the check above the code that swaps the dimensions
+    based on the rotation.
+    
+    Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
+    Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
+    Tested-by: Robert Hooker <robert.hooker at canonical.com>
+    Tested-by: Kent Baxley <kent.baxley at canonical.com>
+    Signed-off-by: Keith Packard <keithp at keithp.com>
+    (cherry picked from commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3)
 
-This reverts commit 6a6d907e77777057cadbd80572119c09732385cd.
-
-Signed-off-by: Julien Cristau <jcristau at debian.org>
----
 diff --git a/randr/rrscreen.c b/randr/rrscreen.c
-index 0fee1f5..630ff57 100644
+index 1bc1a9e..da6d48d 100644
 --- a/randr/rrscreen.c
 +++ b/randr/rrscreen.c
-@@ -921,18 +921,6 @@ ProcRRSetScreenConfig (ClientPtr client)
- 	width = mode->mode.height;
- 	height = mode->mode.width;
-     }
--
--    if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
--	client->errorValue = width;
--	free(pData);
--	return BadValue;
--    }
--    if (height < pScrPriv->minHeight || pScrPriv->maxHeight < height) {
--	client->errorValue = height;
--	free(pData);
--	return BadValue;
+@@ -910,12 +910,6 @@ ProcRRSetScreenConfig (ClientPtr client)
+      */
+     width = mode->mode.width;
+     height = mode->mode.height;
+-    if (rotation & (RR_Rotate_90|RR_Rotate_270))
+-    {
+-	width = mode->mode.height;
+-	height = mode->mode.width;
 -    }
 -
+     if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
+ 	client->errorValue = width;
+ 	free(pData);
+@@ -927,6 +921,12 @@ ProcRRSetScreenConfig (ClientPtr client)
+ 	return BadValue;
+     }
+ 
++    if (rotation & (RR_Rotate_90|RR_Rotate_270))
++    {
++	width = mode->mode.height;
++	height = mode->mode.width;
++    }
++
      if (width != pScreen->width || height != pScreen->height)
      {
  	int	c;
---
-cgit v0.8.3-6-g21f6

================================================================
Index: packages/xorg-xserver-server/xorg-xserver-server.spec
diff -u packages/xorg-xserver-server/xorg-xserver-server.spec:1.279 packages/xorg-xserver-server/xorg-xserver-server.spec:1.280
--- packages/xorg-xserver-server/xorg-xserver-server.spec:1.279	Sun May 29 09:08:54 2011
+++ packages/xorg-xserver-server/xorg-xserver-server.spec	Sun May 29 09:38:21 2011
@@ -16,7 +16,7 @@
 %define	xorg_xserver_server_videodrv_abi	10.0
 %define	xorg_xserver_server_xinput_abi		12.2
 
-%define		rel	1
+%define		rel	2
 Summary:	X.org server
 Summary(pl.UTF-8):	Serwer X.org
 Name:		xorg-xserver-server
@@ -618,6 +618,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.280  2011/05/29 07:38:21  arekm
+- rel 2; replace nvidia hack with proper checks
+
 Revision 1.279  2011/05/29 07:08:54  arekm
 - up to 1.10.2
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xorg-xserver-server/xorg-xserver-server-nvidia-randr.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xorg-xserver-server/xorg-xserver-server.spec?r1=1.279&r2=1.280&f=u



More information about the pld-cvs-commit mailing list