xorg.conf's PreferredMode overridden by RandR when starting up X
Submitted by Alec Habig
Assigned to Xorg Project Team
Description
(This bug grew out of some radeonhd debugging over in bug #16740. The driver bug is now fixed, so this bug has been opened to discuss the resulting RandR problem).
The RandR machinery has come a long way at being able to guess appropriate defaults without guidance from xorg.conf. However, it seems to have gone a bit too far, in that it overrides the PreferredModes in the conf file upon startup.
My setup: a 1920x1200 external LCD on DVI-D_1, and a 1400x1050 laptop LCD on PANEL, RightOf the external monitor.
By default, RandR wants to bring up both monitors in the same resolution, with the larger monitor running in the lower resolution. If I use RROutputOrder to set the external monitor as the primary one, then the big monitor is ok but PANEL runs in a painful 1920x1200scaled mode.
My own preference is to let each monitor run in their native modes, and the bit of lost virtual screen real estate off the bottom of the smaller monitor is the price I pay for crisp pixels and no headache at the end of the workday. So, I set:
(II) RADEONHD(0): Output DVI-D_1 using monitor section DoubleSightDVI () RADEONHD(0): Option "PreferredMode" "1920x1200" (II) RADEONHD(0): Output VGA_1 has no monitor section (II) RADEONHD(0): Output PANEL using monitor section ThinkpadLCD () RADEONHD(0): Option "PreferredMode" "1400x1050" (**) RADEONHD(0): Option "RightOf" "DoubleSightDVI"
RandR decides that no, you really want to be running the same resolutions, silly boy! and proceeds to lie:
(II) RADEONHD(0): Using user preference for initial modes
then set:
(II) RADEONHD(0): Output DVI-D_1 using initial mode 1920x1200 (II) RADEONHD(0): Output PANEL using initial mode 1920x1200Scaled
Now, I can then proceed to manually set things right:
xrandr --output PANEL --mode 1400x1050
and things work fine. The Bug (IMHO) is that RandR isn't honoring the xorg.conf file set PreferredModes. It recognizes that I set them with the "+" label in its list, but decides to Do Its Own Thing anyway. One shouldn't have to shell script something which there's already conf file option for.
(System: up to date Fedora 9 system, xorg-x11-server-utils-7.4-1.fc9.i386, xorg-x11-radeonhd from git head. See bug #16740 for a plethora of logging).
Version: git