[PATCH] Flicker free initialization fix for xf86-video-intel 2.21.11

Marty Jack martyj19 at comcast.net
Tue Jul 2 13:20:31 PDT 2013


The change to flicker free initialization has an off by one that causes "Position"
in xorg.conf not to be considered in whether there is a user override.  Without
the patch, the displays remain cloned as they started; with the patch, we get the
specified virtual desktop.

diff -Naur xf86-video-intel-2.21.11.orig/src/sna/sna_display.c xf86-video-intel-2.21.11/src/sna/sna_display.c
--- xf86-video-intel-2.21.11.orig/src/sna/sna_display.c	2013-06-27 11:40:41.000000000 -0400
+++ xf86-video-intel-2.21.11/src/sna/sna_display.c	2013-07-02 16:02:20.221376838 -0400
@@ -2954,7 +2954,7 @@
 	ScrnInfoPtr scrn = sna->scrn;
 	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
 	const int user_overrides[] = {
-		2, 3, 4, 5, 6, /* position */
+		1, 2, 3, 4, 5, /* position */
 		11, /* rotate */
 		12, /* panning */
 	};
	
Reference: server, beginning at line 429, hw/xfree86/modes/xf86Crtc.c

It is a Great Pity that this enum hasn't been exposed in a public header
so that drivers can avoid hard coding values.
	
Reference, xorg.conf for two monitors on a 3600x1080 virtual

Section "Device"
	Identifier "DH57DD"
	Driver "intel"
	Option "AccelMethod" "sna"
	Option "monitor-VGA1" "VGA1"
	Option "monitor-HDMI1" "VX2250wm"
	Option "monitor-HDMI2" "VX2025wm"
	Option "monitor-DP1" "DP1"
	Option "monitor-DP2" "DP2"
EndSection

Section "Monitor"
	Identifier "VGA1"
	Option "Ignore" "true"
EndSection

Section "Monitor"
	Identifier "DP1"
	Option "Ignore" "true"
EndSection

Section "Monitor"
	Identifier "DP2"
	Option "Ignore" "true"
EndSection

Section "Monitor"
	Identifier "VX2250wm"
EndSection

Section "Monitor"
	Identifier "VX2025wm"
	Option "Position" "1920 0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device "DH57DD"
	Monitor "VX2250wm"
	DefaultDepth 24
	SubSection "Display"
		Viewport 0 0
		Depth 24
		Virtual 3600 1080
	EndSubSection
EndSection


More information about the xorg mailing list