rpms/xorg-x11-server/devel xserver-1.5.0-aspect-match.patch, NONE, 1.1 xorg-x11-server.spec, 1.309, 1.310

Adam Jackson (ajax) fedora-extras-commits at redhat.com
Thu Mar 13 19:08:45 UTC 2008


Author: ajax

Update of /cvs/pkgs/rpms/xorg-x11-server/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17179

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.5.0-aspect-match.patch 
Log Message:
* Thu Mar 13 2008 Adam Jackson <ajax at redhat.com> 1.4.99.901-8.20080310
- xserver-1.5.0-aspect-match.patch: Fix the RANDR 1.2 initial configuration
  heuristic for the case where the best possible mode is the first one in
  the first monitor's mode list.


xserver-1.5.0-aspect-match.patch:

--- NEW FILE xserver-1.5.0-aspect-match.patch ---
>From ee98a88b16133b1e2b8532678ea9e06868db7407 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Thu, 13 Mar 2008 14:06:18 -0400
Subject: [PATCH] Fix xf86TargetAspect() to, er, work.

nextAspectMode() was always skipping the first mode in the mode list, which
was problematic if that was the best possible mode...
---
 hw/xfree86/modes/xf86Crtc.c |   51 ++++++++++++++++++++++--------------------
 1 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 0bef5b4..2b07421 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1674,14 +1674,19 @@ aspectMatch(float a, float b)
 }
 
 static DisplayModePtr
-nextAspectMode(DisplayModePtr start, float aspect)
+nextAspectMode(xf86OutputPtr o, DisplayModePtr last, float aspect)
 {
-    DisplayModePtr m = start;
+    DisplayModePtr m = NULL;
 
-    if (!m)
+    if (!o)
 	return NULL;
 
-    for (m = m->next; m; m = m->next)
+    if (!last)
+	m = o->probed_modes;
+    else
+	m = last->next;
+
+    for (; m; m = m->next)
 	if (aspectMatch(aspect, (float)m->HDisplay / (float)m->VDisplay))
 	    return m;
 
@@ -1691,31 +1696,29 @@ nextAspectMode(DisplayModePtr start, float aspect)
 static DisplayModePtr
 bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect)
 {
-    int o, p;
-    DisplayModePtr mode, test = NULL, match = NULL;
+    int o = -1, p;
+    DisplayModePtr mode = NULL, test = NULL, match = NULL;
 
-    for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
-	mode = config->output[o]->probed_modes;
-	while ((mode = nextAspectMode(mode, aspect))) {
-	    for (p = o; nextEnabledOutput(config, enabled, &p); ) {
-		test = xf86OutputFindClosestMode(config->output[p], mode);
-		if (!test)
-		    break;
-		if (test->HDisplay != mode->HDisplay ||
+    nextEnabledOutput(config, enabled, &o);
+    while ((mode = nextAspectMode(config->output[o], mode, aspect))) {
+	for (p = o; nextEnabledOutput(config, enabled, &p); ) {
+	    test = xf86OutputFindClosestMode(config->output[p], mode);
+	    if (!test)
+		break;
+	    if (test->HDisplay != mode->HDisplay ||
 		    test->VDisplay != mode->VDisplay) {
-		    test = NULL;
-		    break;
-		}
+		test = NULL;
+		break;
 	    }
+	}
 
-	    /* if we didn't match it on all outputs, try the next one */
-	    if (!test)
-		continue;
+	/* if we didn't match it on all outputs, try the next one */
+	if (!test)
+	    continue;
 
-	    /* if it's bigger than the last one, save it */
-	    if (!match || (test->HDisplay > match->HDisplay))
-		match = test;
-	}
+	/* if it's bigger than the last one, save it */
+	if (!match || (test->HDisplay > match->HDisplay))
+	    match = test;
     }
 
     /* return the biggest one found */
-- 
1.5.4.3



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.309
retrieving revision 1.310
diff -u -r1.309 -r1.310
--- xorg-x11-server.spec	13 Mar 2008 17:40:25 -0000	1.309
+++ xorg-x11-server.spec	13 Mar 2008 19:07:47 -0000	1.310
@@ -20,7 +20,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.4.99.901
-Release:   7.%{gitdate}%{?dist}
+Release:   8.%{gitdate}%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -66,6 +66,7 @@
 Patch5006: xserver-1.5.0-ia64.patch
 Patch5007: xserver-1.5.0-bad-fbdev-thats-mine.patch
 Patch5008: xserver-1.5.0-xaa-sucks.patch
+Patch5009: xserver-1.5.0-aspect-match.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -514,6 +515,11 @@
 
 
 %changelog
+* Thu Mar 13 2008 Adam Jackson <ajax at redhat.com> 1.4.99.901-8.20080310
+- xserver-1.5.0-aspect-match.patch: Fix the RANDR 1.2 initial configuration
+  heuristic for the case where the best possible mode is the first one in
+  the first monitor's mode list.
+
 * Thu Mar 13 2008 Adam Jackson <ajax at redhat.com> 1.4.99.901-7.20080310
 - xserver-1.5.0-xaa-sucks: Disable XAA offscreen pixmaps by default.  They're
   almost always a performance loss anyway.  Use Option "XaaOffscreenPixmaps"




More information about the fedora-extras-commits mailing list