Bug 51146 - [GM965/GL960 regression] video mode mismatch driver/monitor
Summary: [GM965/GL960 regression] video mode mismatch driver/monitor
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Rodrigo Vivi
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-16 01:04 UTC by max
Modified: 2017-07-24 23:01 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
xrandr --verbose (11.30 KB, text/plain)
2012-06-16 01:04 UTC, max
no flags Details
no rb modes (339 bytes, patch)
2012-06-19 02:29 UTC, Daniel Vetter
no flags Details | Splinter Review
dmesg drm.debug=0x06 with http://thread.gmane.org/gmane.comp.video.dri.devel/70536 patch (297.80 KB, text/plain)
2012-06-20 10:21 UTC, max
no flags Details
culmulative revert (11.27 KB, patch)
2012-06-28 07:15 UTC, Daniel Vetter
no flags Details | Splinter Review

Description max 2012-06-16 01:04:03 UTC
Created attachment 63104 [details]
xrandr --verbose

My laptop has 1280x800 screen. If I connect external
1600x1200 monitor (LG L2000CP), xrandr reports
1280x800 modes for VGA1. If this mode is set e.g. by
xrandr --output LVDS1 --off --output VGA1 --mode 1280x800
next xrandr shows
...
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
...
   1280x800       84.9*    74.9     59.8  
...
However monitor believes that this is 1280x768@85Hz mode.
Note x768 instead of x800. The image is unstable and "auto/set"
button on the monitor does not help. The bottom part of the image
is out of the screen.

The reason why this mode bothers me is that if I press [Fn+F8]
key in unity session, the cycle of screen switching goes through
the LVDS1 1280x800 + VGA1 1280x800 modes. In the past another mode
was chosen as "common" for the both screen: 1024x768. It is blurred
on both displays, but no parts of image were cut off
and there was no image tremble on VGA1,

I think, the driver should not expose 1280x800 and similar modes for
4:3 displays.

full xrandr output:
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1280x800       60.0 +
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1600x1200      59.8 +   60.0  
   1920x1080      60.0  
   1680x1050      60.0  
   1680x945       60.0  
   1400x1050      74.9     60.0  
   1600x900       60.0  
   1280x1024      75.0     60.0  
   1440x900       84.8     75.0     59.9  
   1280x960       60.0  
   1366x768       60.0  
   1360x768       60.0  
   1280x800       84.9*    74.9     59.8  
   1152x864       75.0  
   1280x768       84.8     74.9     59.9  
   1024x768       85.0     75.1     75.0     70.1     60.0  
   1024x576       60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   848x480        60.0  
   640x480        85.0     75.0     72.8     60.0     59.9  
   720x400        85.0     70.1  
   640x400        85.1  
   640x350        85.1  

In debian squeeze (2.6.32 kernel) the menu of modes is much more modest:

Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 8192 x 8192
VGA1 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1600x1200      59.8*+   60.0  
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       85.0     75.1     60.0  
   832x624        74.6  
   800x600        85.1     75.0     60.3  
   640x480        75.0     60.0     59.9  
   720x400        70.1  
LVDS1 connected (normal left inverted right x axis y axis)
   1280x800       60.0 +
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
TV1 disconnected (normal left inverted right x axis y axis)

Current system info:

Chipset:
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960
Integrated Graphics Controller (primary) (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated
Graphics Controller (secondary) (rev 03)

uname -m
i686

xserver-xorg-video-intel
Version: 2:2.19.0+git20120613.0db789e1-0ubuntu0sarvatt~precise
xserver-xorg-core
Version: 2:1.12.2+git20120605+server-1.12-branch.aaf48906-0ubuntu0ricotz~precise
libgl1-mesa-dri
Version: 8.1~git20120529.f92b2e5e-0ubuntu0sarvatt~precise
libdrm-intel1
Version: 2.4.35+git20120613.d1fcfb17-0ubuntu0sarvatt~precise
kernel
3.4.0-994-generic #201206140421 SMP Thu Jun 14 08:29:17 UTC 2012 i686 i686 i386 GNU/Linux

Linux distribution:
Ubuntu 12.04 with xorg-edgers ppa
and kernel from drm-intel-experimental (quantal)

Asus F80L laptop
Displays: built-in LVDS1 (1280x800) and VGA1 (1600x1200, LG L2000CP)
Comment 1 Daniel Vetter 2012-06-16 06:11:11 UTC
What happens when you select a different refresh rate on that 1280x800 mode?
Comment 2 max 2012-06-17 03:34:33 UTC
(In reply to comment #1)
> What happens when you select a different refresh rate on that 1280x800 mode?

$ xrandr --output VGA1 --mode 1280x800 --rate 85
$ xrandr | grep 1280x800
   1280x800       60.0 +
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1280x800       84.9*    74.9     59.8  

Monitor: 1280x768 85Hz


$ xrandr --output VGA1 --mode 1280x800 --rate 75
$ xrandr | grep 1280x800
   1280x800       60.0 +
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1280x800       84.9     74.9*    59.8  

Monitor: 1024x768 75Hz
Yes, it isn't even 1280x...

$ xrandr --output VGA1 --mode 1280x800 --rate 60
$ xrandr | grep 1280x800
   1280x800       60.0 +
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1280x800       84.9     74.9     59.8* 

Monitor: 1024x768 60Hz
Again 1024 instead of 768

Perhaps the monitor does not support 1280x800 mode at all.
At least in the user manual it is not listed among
'Preset modes'. Only 1280x1024 60 and 75 Hz.
Comment 3 Daniel Vetter 2012-06-19 02:29:43 UTC
Created attachment 63215 [details] [review]
no rb modes

Shot in the dark: Can you please try this patch?
Comment 4 max 2012-06-19 09:44:46 UTC
(In reply to comment #3)
> Created attachment 63215 [details] [review] [review]
> no rb modes
> 
> Shot in the dark: Can you please try this patch?

Frankly speaking, I see no difference.

Interesting, I have just realized when xrandr reported 1280x800,
the monitor believed 1024x768@(75|60), only bottom side was stripped,
the right side did not.
Comment 5 Daniel Vetter 2012-06-19 11:57:38 UTC
One curious thing: Do you have a windows machine handy to check how it works there? We've added these non-4:3 specifically because users wanted them (and Windows 7 at least does at them, too). Best would be if you could test this on a range of Windows version, I'm not sure exactly when Microsoft started adding 16:9/10 modes automatically.
Comment 6 Daniel Vetter 2012-06-19 12:00:32 UTC
Also, can you please try this patch

http://thread.gmane.org/gmane.comp.video.dri.devel/70536
Comment 7 max 2012-06-20 09:25:10 UTC
(In reply to comment #6)
> Also, can you please try this patch
> 
> http://thread.gmane.org/gmane.comp.video.dri.devel/70536

Wide screen modes almost gone away.

The exception is 1920x1080.
If I choose it manually, strange thing happen later (after
several display switches). Unity bar in the middle of the screen,
stale image, etc. Even x server restart does not cure
the problem completely.

Leaving aside that "strange" mode with trembling image,
[Fn+F8] key almost works (the issues, I suppose,
are not caused by this patch). The cycle goes through
1024x768 mode. In the past it had distorted image
on the LVDS1 screen. Now it is blurred but not distorted,
since black bands appear on the left and right side
of the image.

For me it looks better than cut and trembling wide screen
common mode.

I do not have Windows on my laptop and I have a very little
experience with Vista/7 at all. The only thing that I can add,
if I remember correctly, on Windows 7 laptop
with connected 4:3 projector I have seen non-distorted 4:3
image on the internal screen (with black bands at the left
and right sides of the screen).
Comment 8 Daniel Vetter 2012-06-20 09:33:08 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > Also, can you please try this patch
> > 
> > http://thread.gmane.org/gmane.comp.video.dri.devel/70536
> 
> Wide screen modes almost gone away.
> 
> The exception is 1920x1080.
> If I choose it manually, strange thing happen later (after
> several display switches). Unity bar in the middle of the screen,
> stale image, etc. Even x server restart does not cure
> the problem completely.

This sounds more like the window manager simply getting confused about things and maybe only drawing to the common portion of X screen shared by VGA1 and LVDS1. Are there any visual issues with the mode itself (and does the monitor correctly recognize the mode)?

> Leaving aside that "strange" mode with trembling image,
> [Fn+F8] key almost works (the issues, I suppose,
> are not caused by this patch). The cycle goes through
> 1024x768 mode. In the past it had distorted image
> on the LVDS1 screen. Now it is blurred but not distorted,
> since black bands appear on the left and right side
> of the image.

Yeah, that's expected I guess, unity selects the same resolution on both screens, which means we need to upscale the stuff on LVDS1 (and add black bars do to the 4:3 vs: 16:10 aspect ratio).

> For me it looks better than cut and trembling wide screen
> common mode.
> 
> I do not have Windows on my laptop and I have a very little
> experience with Vista/7 at all. The only thing that I can add,
> if I remember correctly, on Windows 7 laptop
> with connected 4:3 projector I have seen non-distorted 4:3
> image on the internal screen (with black bands at the left
> and right sides of the screen).

Ok, no problem.
Comment 9 Adam Jackson 2012-06-20 09:39:09 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > Also, can you please try this patch
> > 
> > http://thread.gmane.org/gmane.comp.video.dri.devel/70536
> 
> Wide screen modes almost gone away.
> 
> The exception is 1920x1080.

That's pretty odd.  Can you boot with drm.debug=4 and attach dmesg please?
Comment 10 max 2012-06-20 10:19:00 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > 
> > The exception is 1920x1080.
> > If I choose it manually, strange thing happen later (after
> > several display switches). Unity bar in the middle of the screen,
> > stale image, etc. Even x server restart does not cure
> > the problem completely.
> 
> This sounds more like the window manager simply getting confused about things
> and maybe only drawing to the common portion of X screen shared by VGA1 and
> LVDS1.

I am afraid, that problem can be deeper. Xorg.0.log

[   324.045] (WW) intel(0): first get vblank counter failed: Invalid argument
[   324.054] (WW) intel(0): I830DRI2GetMSC:1477 get vblank counter failed: Invalid argument

[   324.296] (WW) intel(0): I830DRI2ScheduleWaitMSC:1544 get vblank counter failed: Invalid argument

[   476.713] [dix] EventToCore: Not implemented yet 

> Are there any visual issues with the mode itself (and does the monitor
> correctly recognize the mode)?

It is impossible to look at that blurred trembling image more
than just several seconds. I even forgot to check the mode in the
monitor menu. Anyway, it can not be recognized, the monitor
has 1600x1200 native resolution (also 1280x1024, 1024x768, 800x600,
600x480 and a couple of other modes).
Comment 11 max 2012-06-20 10:21:30 UTC
Created attachment 63270 [details]
dmesg drm.debug=0x06 with http://thread.gmane.org/gmane.comp.video.dri.devel/70536 patch
Comment 12 Daniel Vetter 2012-06-25 10:14:43 UTC
Can you please test the 2 patches from Adam Jackson posted at

http://comments.gmane.org/gmane.comp.video.dri.devel/70634
Comment 13 max 2012-06-26 11:28:32 UTC
I have applied the patches to the drm-intel-next branch
of git://people.freedesktop.org/~danvet/drm-intel

Some modes have gone away, but only a few ones
xrandr
Screen 0: minimum 320 x 200, current 2880 x 1200, maximum 8192 x 8192
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1600x1200+1280+0 (normal left inverted right x axis y axis) 408mm x 306mm
   1600x1200      59.8*+   60.0  
   1680x1050      60.0  
   1400x1050      74.9     60.0  
   1280x1024      75.0     60.0  
   1440x900       84.8     75.0     59.9  
   1280x960       60.0  
   1360x768       60.0  
   1280x800       84.9     74.9     59.8  
   1152x864       75.0  
   1280x768       84.8     74.9     59.9  
   1024x768       85.0     75.1     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   848x480        60.0  
   640x480        85.0     75.0     72.8     60.0     59.9  
   720x400        85.0     70.1  
   640x400        85.1  
   640x350        85.1  

The mode 1280x800 at VGA1 still present and the monitor as usual thinks that it is 1280x768 with cropped bottom part.  

I do not know if it is somehow related to compiz, but I have seen the state with black LVDS1, but xrandr reported "1280x800       60.0*+"

xserver-xorg-video-intel
Version: 2:2.19.0+git20120622.565297e6-0ubuntu0sarvatt~precise
xserver-xorg-core
Version: 2:1.12.1.902-1ubuntu1
libgl1-mesa-dri
Version: 8.1~git20120529.f92b2e5e-0ubuntu0sarvatt~precise
libdrm-intel1
Version: 2.4.35+git20120613.d1fcfb17-0ubuntu0sarvatt~precise
Comment 14 Daniel Vetter 2012-06-28 07:15:43 UTC
Created attachment 63566 [details] [review]
culmulative revert

Can you plese check whether this patch gets rid of all broken modes?
Comment 15 max 2012-06-28 09:56:06 UTC
(In reply to comment #14)
> Created attachment 63566 [details] [review] [review]
> culmulative revert
> 
> Can you plese check whether this patch gets rid of all broken modes?

Daniel, could you,please, specify the base branch for patches.
I tried to make the changes.

xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected (normal left inverted right x axis y axis)
   1600x1200      59.8 +
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       85.0     75.1     60.0  
   832x624        74.6  
   800x600        85.1     75.0     60.3  
   640x480        75.0     60.0     59.9  
   720x400        70.1  

So, xrandr reports no wide screen modes on 4:3 display now. Nice for X.
Cropped console on VGA1 (1024x768 part for 1280x800 LVDS1)

Other issues are likely unrelated to this bug. Xorg.0.log flooded with
[   845.882] (WW) intel(0): first get vblank counter failed: Invalid argument
[   846.012] (WW) intel(0): first get vblank counter failed: Invalid argument
[   846.016] (WW) intel(0): first get vblank counter failed: Invalid argument

sometimes
[   360.135] (II) intel(0): Allocated new frame buffer 2880x1200 stride 11776, tiled
[   361.430] (WW) intel(0): flip queue failed: Invalid argument
[   361.430] (WW) intel(0): Page flip failed: Invalid argument
[   361.430] (WW) intel(0): flip queue failed: Invalid argument

or
[   299.127] (WW) intel(0): first get vblank counter failed: Invalid argument
[   300.777] (WW) intel(0): I830DRI2ScheduleWaitMSC:1544 get vblank counter failed: Invalid argument
[   300.990] (WW) intel(0): I830DRI2ScheduleWaitMSC:1544 get vblank counter failed: Invalid argument

Just a note. 1024x768 mode on LVDS1 with 1280x800 native resolution has black bands at left and right sides. If it had narrow black bands at top and bottom as well, the image would be sharp.
Comment 16 Daniel Vetter 2012-06-28 12:05:21 UTC
> --- Comment #15 from max <manikulin@gmail.com> 2012-06-28 09:56:06 PDT ---
> (In reply to comment #14)
>> Created attachment 63566 [details] [review] [review]
>> culmulative revert
>>
>> Can you plese check whether this patch gets rid of all broken modes?
>
> Daniel, could you,please, specify the base branch for patches.
> I tried to make the changes.

Pretty much always the drm-intel-next branch.

> xrandr
> Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
> LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x
> 190mm
>   1280x800       60.0*+
>   1024x768       60.0
>   800x600        60.3     56.2
>   640x480        59.9
> VGA1 connected (normal left inverted right x axis y axis)
>   1600x1200      59.8 +
>   1280x1024      75.0     60.0
>   1152x864       75.0
>   1024x768       85.0     75.1     60.0
>   832x624        74.6
>   800x600        85.1     75.0     60.3
>   640x480        75.0     60.0     59.9
>   720x400        70.1
>
> So, xrandr reports no wide screen modes on 4:3 display now. Nice for X.
> Cropped console on VGA1 (1024x768 part for 1280x800 LVDS1)

Ok, thanks for testing.

> Other issues are likely unrelated to this bug. Xorg.0.log flooded with
> [   845.882] (WW) intel(0): first get vblank counter failed: Invalid argument
> [   846.012] (WW) intel(0): first get vblank counter failed: Invalid argument
> [   846.016] (WW) intel(0): first get vblank counter failed: Invalid argument
>
> sometimes
> [   360.135] (II) intel(0): Allocated new frame buffer 2880x1200 stride 11776,
> tiled
> [   361.430] (WW) intel(0): flip queue failed: Invalid argument
> [   361.430] (WW) intel(0): Page flip failed: Invalid argument
> [   361.430] (WW) intel(0): flip queue failed: Invalid argument
>
> or
> [   299.127] (WW) intel(0): first get vblank counter failed: Invalid argument
> [   300.777] (WW) intel(0): I830DRI2ScheduleWaitMSC:1544 get vblank counter
> failed: Invalid argument
> [   300.990] (WW) intel(0): I830DRI2ScheduleWaitMSC:1544 get vblank counter
> failed: Invalid argument

This all sounds like the same issue, we somehow can't enable the irq.
Different bug though. Can you please file a new one for this issue
with Xorg.log showing these problems and also dmesg with drm.debug=0xe
(please grab the dmesg after you've reproduced these error messages).

> Just a note. 1024x768 mode on LVDS1 with 1280x800 native resolution has black
> bands at left and right sides. If it had narrow black bands at top and bottom
> as well, the image would be sharp.

This is just what your desktop sets up, you can adjust this all with
xrandr (e.g. the for lower resolutions than native you can select
different upscaling modes with the "scaling mode" xrandr property).
The behaviour you describe is simply the default.
Comment 17 max 2012-07-08 07:08:07 UTC
Plenty of wide-screen modes still present in both Ubuntu xorg-edgers kernel
linux-image-3.5.0-2-generic 3.5.0-2.2 and in drm-intel-experimental
linux-image-3.5.0-994-generic 3.5.0-994.201207060407

In the meanwhile I asked my colleague to connect his laptop with Windows 7 to SyncMaster 743 monitor (4:3, 1280x1024 native resolution). We did not managed to get any wide-screen mode on that display. The built-in screen switched to 4:3 mode instead (with black bands at the left and right sides)
Comment 18 Jani Nikula 2013-01-08 15:09:45 UTC
Max, please test with the v3.7 kernel, thanks.
Comment 19 max 2013-01-09 17:29:00 UTC
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 408mm x 306mm
...
   1280x800       84.9*    74.9     59.8  
...

VGA1 is 4:3 aspect ratio display, it supports only 1280x1024 and reports this mode, so the bottom part of the image is out of the screen.

Tested with
3.8.0-994-generic #201301090406 SMP Wed Jan 9 09:18:02 UTC 2013 i686 i686 i686 GNU/Linux
linux-image-3.8.0-994-generic_3.8.0-994.201301090406_i386.deb
mainline package, 2013-01-09
and with
linux-image-3.8.0-999-generic_3.8.0-999.201301090432_i386.deb
drm-intel-nightly, 2013-01-09

So unsupported modes are present and the problem persists.
Comment 20 max 2013-03-06 16:54:30 UTC
Something changed between drm-intel-nightly kernels
2013-02-18 4e5f64bc1d21abbce9ed70d929e553c11f47e912
and
2013-03-05 a0430c52c3ef2f6ffb73df8bf010b062b69d5719

Only reasonable modes for external monitor connected to VGA1
(1600x1200 native resolution) are reported by xrandr now.
No cropped at bottom image on VGA1 for mirror screen
(were 1280x800, actually 1280x768)
Now the common mode is 1024x768, proper 4:3 aspect on LVDS1
(native resolution 1280x800) and slightly blurred image
on LVDS1 with black margins on the right and on the left.

I would be happy if someone could suggest the patch
that can be applied to the stable kernel 3.8.2.
Comment 21 Daniel Vetter 2013-03-06 17:08:02 UTC
In that range the most likely commit is

commit 196e077dc165a307efbd9e7569f81bbdbcf18f65
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Fri Feb 15 13:36:27 2013 -0200

    drm: don't add inferred modes for monitors that don't support them

It's already cc: stable tagged, so should show up soon. Can you please check that this fixes your bug on 3.8, too?
Comment 22 max 2013-03-07 14:39:33 UTC
Thank you, Daniel.
The patch is really in 3.8.2 and only the reasonable video modes are present.
Comment 23 Daniel Vetter 2013-03-07 21:57:29 UTC
Awesome, so we've finally got a handle on your bugs here. Thanks for reporting this and please reopen if it pops up again (or file a new bug if there's something else broken).


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.