Bug 28251

Summary: Xorg startup resolution is not the preferred resolution
Product: xorg Reporter: Thiago M. Sayão <thiago.sayao>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED NOTABUG QA Contact: Xorg Project Team <xorg-team>
Severity: minor    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log none

Description Thiago M. Sayão 2010-05-25 16:31:34 UTC
Created attachment 35856 [details] [review]
Xorg log

When X starts and i am greeted with the login manager (GDM), the resolution is not set at 1440x900 which is default and best resolution for my samsumg 19" LCD monitor (wide). It appears to be 1280x720 which is the default resolution of my plasma TV that is plugged on the first connector (maybe it's setting the default resolution of the device plugged on the first connector?).

I have to plug the TV on the first connector because sound only outputs on the first one (should output on both as reported on https://bugs.freedesktop.org/show_bug.cgi?id=27588). If i connect the samsung LCD monitor on the first connector (DVI-0) the default resolution is detected as 1440x900 as expected. To my understanding it should detect 1440x900 independently of the connector the device is plugged.


Here is the xrandr output:

sayao@sayao-desktop:~$ xrandr
Screen 0: minimum 320 x 200, current 2720 x 900, maximum 8192 x 8192
DVI-0 connected 1280x720+1440+0 (normal left inverted right x axis y axis) 1434mm x 806mm
   1280x720       50.0 +   60.0* 
   1920x1080      50.0  
   720x576        50.0  
   720x480        59.9  
DIN disconnected (normal left inverted right x axis y axis)
DVI-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 257mm
   1440x900       59.9*+   75.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  


sayao@sayao-desktop:~$ dmesg | egrep drm
[    5.294265] [drm] Initialized drm 1.1.0 20060810
[    5.897532] [drm] radeon kernel modesetting enabled.
[    5.900304] [drm] initializing kernel modesetting (RV630 0x1002:0x9589).
[    5.900455] [drm] register mmio base: 0x90100000
[    5.900458] [drm] register mmio size: 65536
[    5.901897] [drm] Clocks initialized !
[    5.901901] [drm] Internal thermal controller with fan control
[    5.901904] [drm] 2 Power State(s)
[    5.901907] [drm] State 0 Default (default)
[    5.901911] [drm] 	16 PCIE Lanes
[    5.901913] [drm] 	3 Clock Mode(s)
[    5.901915] [drm] 		0 engine/memory: 600000/500000
[    5.901918] [drm] 		1 engine/memory: 600000/500000
[    5.901921] [drm] 		2 engine/memory: 600000/500000
[    5.901923] [drm] State 1 Performance 
[    5.901925] [drm] 	16 PCIE Lanes
[    5.901927] [drm] 	3 Clock Mode(s)
[    5.901930] [drm] 		0 engine/memory: 600000/500000
[    5.901932] [drm] 		1 engine/memory: 600000/500000
[    5.901935] [drm] 		2 engine/memory: 600000/500000
[    5.901945] [drm] radeon: power management initialized
[    5.902845] [drm] Detected VRAM RAM=256M, BAR=256M
[    5.902850] [drm] RAM width 128bits DDR
[    5.903183] [drm] radeon: 256M of VRAM memory ready
[    5.903186] [drm] radeon: 512M of GTT memory ready.
[    5.903275] [drm] radeon: using MSI.
[    5.903312] [drm] radeon: irq initialized.
[    5.903316] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    5.904262] [drm] Loading RV630 Microcode
[    6.610162] [drm] ring test succeeded in 0 usecs
[    6.610322] [drm] radeon: ib pool ready.
[    6.610436] [drm] ib test succeeded in 0 usecs
[    6.610440] [drm] Enabling audio support
[    6.610901] [drm] Default TV standard: PAL
[    6.610908] [drm] Default TV standard: PAL
[    6.611031] [drm] Default TV standard: PAL
[    6.611395] [drm] Radeon Display Connectors
[    6.611398] [drm] Connector 0:
[    6.611401] [drm]   DVI-I
[    6.611403] [drm]   HPD1
[    6.611406] [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[    6.611409] [drm]   Encoders:
[    6.611411] [drm]     DFP1: INTERNAL_KLDSCP_TMDS1
[    6.611413] [drm]     CRT2: INTERNAL_KLDSCP_DAC2
[    6.611416] [drm] Connector 1:
[    6.611418] [drm]   DIN
[    6.611419] [drm]   Encoders:
[    6.611422] [drm]     TV1: INTERNAL_KLDSCP_DAC2
[    6.611424] [drm] Connector 2:
[    6.611426] [drm]   DVI-I
[    6.611428] [drm]   HPD2
[    6.611431] [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[    6.611433] [drm]   Encoders:
[    6.611435] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[    6.611437] [drm]     DFP2: INTERNAL_LVTM1
[    7.068077] [drm] fb mappable at 0x80141000
[    7.068082] [drm] vram apper at 0x80000000
[    7.068085] [drm] size 5299200
[    7.068087] [drm] fb depth is 24
[    7.068089] [drm]    pitch is 5888
[    7.068219] fb0: radeondrmfb frame buffer device
[    7.068231] [drm] Initialized radeon 2.3.0 20080528 for 0000:01:00.0 on minor 0
Comment 1 Alex Deucher 2010-05-25 22:05:17 UTC
The xserver picks the default modes and it tries to get the closest common modes supported by both heads by default in clone mode in order to get as similar a sized mode as possible on both heads:
(II) RADEON(0): Using sloppy heuristic for initial modes
(II) RADEON(0): Output DVI-0 using initial mode 1280x720
(II) RADEON(0): Output DVI-1 using initial mode 1152x864

If you want something different you'll need to specify the preferred mode in your xorg.conf.  See this page for xrandr config details:
http://wiki.debian.org/XStrikeForce/HowToRandR12
Comment 2 Thiago M. Sayão 2010-05-26 16:21:16 UTC
Why the use of heuristics if it could just use default? Won't this be better for most cases?

Also, if i switch connector (plug the monivor on DVI-0 and the TV on DVI-1) the monitor gets the desired 1440X900 resolution. Why the heuristic is different if the devices are the same?

If this is really not a bug, can i file as a feature request?

Thank you

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.