Bug 11642

Summary: Incorrect refresh rate on a G965 machine using Intel DDX driver 2.0.0/2.1.0
Product: xorg Reporter: Daniel Zhu <daniel.zhu>
Component: Driver/intelAssignee: Hong Liu <hong.liu>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: hong.liu, zhenyu.z.wang
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log using intel 2.1.0 driver (ModeDebug on)
none
xorg log using i810 driver (ModeDebug on)
none
xrandr -q output using intel 2.1.0 driver
none
xrandr -q output using i810 driver none

Description Daniel Zhu 2007-07-17 22:45:19 UTC
Machine info: G965 integrated graphics card, Intel 64-bit CPU
OS info: reproducible on both Ubuntu Linux and Solaris x86
Monitor: LCD monitor ViewSonic VE710s, Dell 1703 FPt

This was found using the Xserver and Intel DDX driver 2.0.0/2.1.0 plus almost everything (randr 1.2, etc.) built from git last week.

xrandr -q gives:
 SZ:    Pixels          Physical       Refresh
*0   1280 x 1024   ( 338mm x 270mm )  *60   75  
...
and if we use "xrandr -r 75" to change to 1280x1024@75Hz, the monitor will report "out of range".

This bug does not exist in old i810 driver, xrandr on it only gives:
 SZ:    Pixels          Physical       Refresh
*0   1280 x 1024   ( 325mm x 260mm )  *75  
...

Here is the "grep 1280x1024" result for corresponding Xorg logs with "ModeDebug" set to True (I don't know how to attach the full log here):

# grep 1280x1024 linux-i810-xorg.log
(II) I810(0): 1280x1024@75Hz
(II) I810(0): Modeline "1280x1024"  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync
(II) I810(0): Modeline "1280x1024"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
(II) I810(0): Modeline "1280x1024"  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync
Mode: 38 (1280x1024)
Mode: 49 (1280x1024)
*(II) I810(0): Not using mode "1280x1024" (hsync out of range)
Mode: 58 (1280x1024)
(--) I810(0): Virtual size is 1280x1024 (pitch 2048)
(**) I810(0): *Built-in mode "1280x1024"
(II) I810(0): Attempting to use 75.02Hz refresh for mode "1280x1024" (858)

# grep 1280x1024 linux-intel-xorg.log
(II) intel(0): 1280x1024@75Hz
(II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
(II) intel(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
(II) intel(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
(II) intel(0): Output VGA using initial mode 1280x1024
(II) intel(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
(II) intel(0): 1280x1024@75Hz
(II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
(II) intel(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Not using default mode "1280x1024" (bad mode clock/interlace/doublescan)
(II) intel(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
(II) intel(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
Comment 1 Daniel Zhu 2007-07-17 22:51:10 UTC
Created attachment 10777 [details]
xorg log using intel 2.1.0 driver (ModeDebug on)
Comment 2 Daniel Zhu 2007-07-17 22:51:41 UTC
Created attachment 10778 [details]
xorg log using i810 driver (ModeDebug on)
Comment 3 Daniel Zhu 2007-07-17 22:52:20 UTC
Created attachment 10779 [details]
xrandr -q output using intel 2.1.0 driver
Comment 4 Daniel Zhu 2007-07-17 22:52:43 UTC
Created attachment 10780 [details]
xrandr -q output using i810 driver
Comment 5 Eric Anholt 2007-08-08 15:00:02 UTC
Is there an issue with the display when at 1280x1024x60hz?  If a 75hz mode even works, it's usually by having the display sample at 60hz from a buffer being updated at 75hz (resulting in tearing and other badness).  Your monitor indicates that the 60hz timing is its preferred mode.  Is that not the case?
Comment 6 Daniel Zhu 2007-08-09 02:32:13 UTC
Summary of this bug:
i810-1.7.4 driver:
    only 1280x1024@75Hz detected and used
intel-2.0.0/2.1.0 driver:
    1280x1024@60Hz and 1280x1024@75Hz (may be different with i810's 1280x1024@75Hz) detected, 1280x1024@60Hz chosen as the default setting and it works well.
    Only when manually setting it to 1280x1024@75Hz, some monitors complain "out of range".

Conclusion:
    There appears a regression in modsetting code of Intel 2.0.0/2.1.0
Comment 7 Gordon Jin 2007-10-11 19:21:00 UTC
60Hz should be preferred on LCD.
I'm not sure why 75Hz not work now, but how about removing 75Hz?
Comment 8 Michael Fu 2007-10-23 00:52:07 UTC

*** This bug has been marked as a duplicate of bug 12262 ***
Comment 9 Michael Fu 2007-10-23 00:53:17 UTC
though they are different monitors, but I think they have the same reason.

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.