Bug 10763

Summary: [915 drm] syncs to wrong refresh rate
Product: xorg Reporter: Lorenzo Colitti <lorenzo>
Component: Driver/intelAssignee: Eric Anholt <eric>
Status: RESOLVED FIXED QA Contact: Robert Luciani <rluciani>
Severity: normal    
Priority: medium    
Version: 7.2 (2007.02)   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 13027    
Attachments:
Description Flags
My xorg log file. none

Description Lorenzo Colitti 2007-04-25 11:34:40 UTC
If I use driconf to enable sync to vblank, the driver seems to sync to the wrong refresh rate. With vsync disabled, gxgears gets ~600 FPS, and with vsync enabled it gets almost exactly 50 FPS:

$ glxgears
252 frames in 5.0 seconds = 50.250 FPS
250 frames in 5.0 seconds = 49.880 FPS
250 frames in 5.0 seconds = 49.880 FPS
250 frames in 5.0 seconds = 49.880 FPS
250 frames in 5.0 seconds = 49.864 FPS

Which would be fine, except I'm pretty sure my laptop's LCD panel refreshes at 60 Hz, not 50 Hz.

This is using X.org 7.2.0 and both xorg-video-i810 1.7.4 and xorg-video-intel version 1.9.94, both from stock Ubuntu Feisty. Strace shows they are both loading i915_dri.so (Ubuntu doesn't include a new enough DRM to use i915tex_dri.so).

Interestingly, with xorg-video-i810 xrandr reports only a 60 Hz refresh rate, while xorg-video-intel reports 50, 60 and 40 (with 50 selected).

If I use xorg-video-intel set to 50 Hz and enable vsync, I still see tearing, so I assume that everything is in fact synced to 50 Hz but the panel is doing 60. If on the other hand I set refresh to 60, glxgears shows it's syncing to 50 FPS.

My Device and Monitor sections look like this:

Section "Device"
        Identifier      "Intel Corporation Mobile Integrated Graphics Controller"
        Driver          "i810"
        Option          "MonitorLayout" "CRT,LFP"
        Option          "DevicePresence"        "true"
        Option          "XAANoOffScreenPixmaps"
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        Option          "DPMS"
EndSection
Comment 1 Michel Dänzer 2007-04-26 00:34:13 UTC
What does xrandr 1.2 or newer say with the intel driver? Would be great if you could also provide the stderr output of GL apps with the 'Mesa debugging output' patch from bug 10542.
Comment 2 Lorenzo Colitti 2007-04-26 02:05:33 UTC
$ git clone git://anongit.freedesktop.org/git/xorg/app/xrandr ; cd xrandr ;
./autogen.sh ; make
[...]
$ ./xrandr --version
Server reports RandR version 1.1
$ ./xrandr 
 SZ:    Pixels          Physical       Refresh
*0   1024 x 768    ( 347mm x 347mm )  *50   60   40  
 1    800 x 600    ( 347mm x 347mm )   60  
 2    640 x 480    ( 347mm x 347mm )   60  
 3   1024 x 1024   ( 347mm x 347mm )   50  
Current rotation - normal
Current reflection - none
Rotations possible - normal left inverted right 
Reflections possible - none
Comment 3 Robert Luciani 2007-05-17 06:55:06 UTC
I have the same problem as you, 60Hz refresh rate, but my graphics still end up tearing both in 3d and 2d. Here is what xrandr and glxgears say:

*0   1280 x 800    ( 339mm x 339mm )  *60   85   75   70  
 1   1280 x 768    ( 339mm x 339mm )   85   75   70   60  
 2   1280 x 720    ( 339mm x 339mm )   85   75   70   60  
 3   1152 x 768    ( 339mm x 339mm )   55  
 4   1024 x 768    ( 339mm x 339mm )   85   75   70   60  
 5    832 x 624    ( 339mm x 339mm )   75  
 6    800 x 600    ( 339mm x 339mm )   85   72   75   60   56  
 7    640 x 480    ( 339mm x 339mm )   85   73   75   60  
 8    720 x 400    ( 339mm x 339mm )   85  
 9    640 x 400    ( 339mm x 339mm )   85  
 10   640 x 350    ( 339mm x 339mm )   85  
 11  1280 x 1280   ( 339mm x 339mm )   60  
Current rotation - normal
Current reflection - none
Rotations possible - normal left inverted right 
Reflections possible - none

-(r3tex)-% vblank_mode=3 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
libGL warning: 3D driver claims to not support visual 0x5b
296 frames in 5.0 seconds = 59.191 FPS
295 frames in 5.0 seconds = 59.000 FPS
295 frames in 5.0 seconds = 58.859 FPS
295 frames in 5.0 seconds = 58.953 FPS
295 frames in 5.0 seconds = 58.953 FPS
Comment 4 Michel Dänzer 2007-05-21 01:41:43 UTC
(In reply to comment #3)
> I have the same problem as you, 60Hz refresh rate, but my graphics still end up
> tearing both in 3d 

With all apps or only some?

> and 2d.

That's expected at this point.

As your servers don't seem to support RandR 1.2, please attach (as opposed to paste) full X log files.
Comment 5 Robert Luciani 2007-05-21 01:56:27 UTC
Created attachment 10055 [details]
My xorg log file.
Comment 6 Robert Luciani 2007-05-21 02:06:01 UTC
All applications tear, always. 
GLX gears can, without vsync enabled, 
get over 1000FPS so that shouldn't be a problem.
I'm running the Arch Linux distribution with xorg 7.2
The xserver has a number of patches, which I suppose I could rebuild if
necessary:
http://www.archlinux.org/packages/10337/
Comment 7 Robert Luciani 2007-05-21 07:59:14 UTC
Allright, with xorg-server 1.3, big windows move as fast as molasses, xrander 1.2 reports:
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
VGA disconnected (normal left inverted right)
LVDS connected 1280x800+0+0 (normal left inverted right) 0mm x 0mm
   1280x800       59.9*+
   1152x768       54.8  
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
TV disconnected (normal left inverted right)
Comment 8 Jesse Barnes 2007-10-31 13:46:29 UTC
This should be working now (I've been testing it a lot lately).  Can you try again with the latest released bits?
Comment 9 Gordon Jin 2007-11-21 00:34:43 UTC
I'm closing it. Please reopen if you still this issue with the new driver (2.2 or git tip).

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.