xf86-video-ati: Branch 'master' - 2 commits

Michel Dänzer daenzer at kemper.freedesktop.org
Wed Aug 10 08:48:06 PDT 2011


 man/radeon.man         |    8 +++++---
 src/radeon_exa_funcs.c |    2 +-
 src/radeon_video.c     |   12 ++++++++++--
 3 files changed, 16 insertions(+), 6 deletions(-)

New commits:
commit 93fc0843a1e31dc9237433bc2bf17df79e956d26
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed Aug 10 17:44:37 2011 +0200

    Change my e-mail address to something that still works, and always will, I hope.

diff --git a/man/radeon.man b/man/radeon.man
index 8a2343c..b293d89 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -779,7 +779,7 @@ Kevin E. Martin          \fIkem at freedesktop.org\fP
 Alan Hourihane           \fIalanh at fairlite.demon.co.uk\fP
 Marc Aurele La France    \fItsi at xfree86.org\fP
 Benjamin Herrenschmidt   \fIbenh at kernel.crashing.org\fP
-Michel D\(:anzer            \fImichel at tungstengraphics.com\fP
+Michel D\(:anzer            \fImichel at daenzer.net\fP
 Alex Deucher             \fIalexdeucher at gmail.com\fP
 Bogdan D.                \fIbogdand at users.sourceforge.net\fP
 Eric Anholt              \fIeric at anholt.net\fP
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index b6767f0..52adcea 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -27,7 +27,7 @@
  *    Eric Anholt <anholt at FreeBSD.org>
  *    Zack Rusin <zrusin at trolltech.com>
  *    Benjamin Herrenschmidt <benh at kernel.crashing.org>
- *    Michel Dänzer <michel at tungstengraphics.com>
+ *    Michel Dänzer <michel at daenzer.net>
  *
  */
 
commit 9151f3b1c2ebcc34e63195888ba696f2183ba5e2
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Tue Aug 9 19:13:26 2011 +0200

    Prefer the CRTC of the primary output for synchronization.
    
    See https://bugs.freedesktop.org/show_bug.cgi?id=39696 .
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/man/radeon.man b/man/radeon.man
index 83e33e7..8a2343c 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -719,8 +719,10 @@ It has two values: 'off'(0) and 'on'(1). The default is
 XV_CRTC is used to control which display controller (crtc) the textured
 adapter synchronizes the screen update with when XV_VSYNC is enabled.
 The default, 'auto'(-1), will sync to the display controller that more
-of the video is on.  This attribute is useful for things like clone mode
-where the user can best decide which display should be synced.
+of the video is on; when this is ambiguous, the display controller associated
+with the RandR primary output is preferred.  This attribute is useful for
+things like clone mode where the user can best decide which display should be
+synced.
 The default is
 .B 'auto'(-1).
 
diff --git a/src/radeon_video.c b/src/radeon_video.c
index edd6d54..66ff2ad 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -142,19 +142,27 @@ radeon_pick_best_crtc(ScrnInfoPtr pScrn,
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
     int			coverage, best_coverage, c;
     BoxRec		box, crtc_box, cover_box;
-    xf86CrtcPtr         best_crtc = NULL;
+    RROutputPtr         primary_output;
+    xf86CrtcPtr         best_crtc = NULL, primary_crtc = NULL;
 
     box.x1 = x1;
     box.x2 = x2;
     box.y1 = y1;
     box.y2 = y2;
     best_coverage = 0;
+
+    /* Prefer the CRTC of the primary output */
+    primary_output = RRFirstOutput(pScrn->pScreen);
+    if (primary_output && primary_output->crtc)
+	primary_crtc = primary_output->crtc->devPrivate;
+
     for (c = 0; c < xf86_config->num_crtc; c++) {
 	xf86CrtcPtr crtc = xf86_config->crtc[c];
 	radeon_crtc_box(crtc, &crtc_box);
 	radeon_box_intersect(&cover_box, &crtc_box, &box);
 	coverage = radeon_box_area(&cover_box);
-	if (coverage > best_coverage) {
+	if (coverage > best_coverage ||
+	    (coverage == best_coverage && crtc == primary_crtc)) {
 	    best_crtc = crtc;
 	    best_coverage = coverage;
 	}


More information about the xorg-commit mailing list