Bug 19412 - [GM45] background corrupted in dual head configuration with one monitor absent
Summary: [GM45] background corrupted in dual head configuration with one monitor absent
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.3 (2007.09)
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: MaLing
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-05 15:11 UTC by Udo Rader
Modified: 2009-02-02 22:21 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
screenshot showing the corrupt background (329.10 KB, image/jpeg)
2009-01-05 15:11 UTC, Udo Rader
no flags Details
xrandr -q output with only lvds connected (328 bytes, text/plain)
2009-01-06 06:07 UTC, Udo Rader
no flags Details
Xorg.0.log with only lvds connected (40.71 KB, text/plain)
2009-01-06 06:34 UTC, Udo Rader
no flags Details
xorg.conf giving corrupt background until <= 2.6.0 (2.61 KB, text/plain)
2009-02-02 07:41 UTC, Udo Rader
no flags Details

Description Udo Rader 2009-01-05 15:11:48 UTC
Created attachment 21701 [details]
screenshot showing the corrupt background

I own a Lenovo W500 laptop coming with an integrated intel GM45 Express based GPU (and a second, but disabled ATI GPU), where Mandriva 2009.0 is running. 

I have configured the card for a dual head configuration. Now when I boot up the laptop without an external monitor connected, the background for my desktop is completely corrupted, see the attached screenshot. While the left part of the image (=the background for the external monitor) is obviously correct, the right part (=the background for the LVDS) is garbage.

I can "fix" the issue by commenting out the 'Option "LeftOf" "LCD"' line below for the "ExtVGA" monitor, but that eventually breaks my dual head configuration.

The relevant parts of my xorg.conf look like this:

---------CUT---------
Section "Monitor"
    Identifier "LCD"
    Option "DPMS"
EndSection

Section "Monitor"
    Identifier "ExtVGA"
    VendorName "Hanns.G"
    ModelName "Hanns.G HG221D"
    HorizSync 31-80
    VertRefresh 56-75
    Option "LeftOf" "LCD"

    # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
    Modeline "1680x1050_60"  147.14  1680 1784 1968 2256  1050 1051 1054 1087 -HSync +Vsync
    Option "DPMS"
EndSection

Section "Device"
    Identifier "device0"
    VendorName "Intel Corporation"
    BoardName "Intel 810 and later"
    Driver "intel"

    # Option "ModeDebug" "true"
    BusId "PCI:0:2:0"
    Option "DPMS"
    Option "AccelMethod" "EXA"
    Option "monitor-LVDS" "LCD"
    Option "monitor-VGA" "ExtVGA"
EndSection

Section "Screen"
    Identifier "screen0"
    Device "device0"
    Monitor "LCD"
    DefaultColorDepth 24

    Subsection "Display"
        Depth 24
        Modes "1920x1200"
    EndSubsection
EndSection

Section "Screen"
    Identifier "screen1"
    Device "device0"
    Monitor "ExtVGA"
    DefaultDepth 24

    Subsection "Display"
        Depth 24
        Modes "1680x1050_60"
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier "layout1"
    InputDevice "Keyboard1" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "SynapticsMouse1" "SendCoreEvents"
    Screen "screen0"
EndSection
---------CUT---------
Comment 1 Gordon Jin 2009-01-05 17:54:53 UTC
Please attach Xorg.0.log and the output of "xrandr -q", according to http://www.intellinuxgraphics.org/how_to_report_bug.html.
Comment 2 Udo Rader 2009-01-06 06:07:46 UTC
Created attachment 21717 [details]
xrandr -q output with only lvds connected
Comment 3 Udo Rader 2009-01-06 06:34:50 UTC
Created attachment 21718 [details]
Xorg.0.log with only lvds connected
Comment 4 MaLing 2009-01-09 05:51:31 UTC
hi,

Could you try the command  $xrandr --output VGA --left-of LVDS when when you boot up the laptop without an external monitor connected(as you said the desktop was corrupted), instead of Option "LeftOf" "LCD" in config file.

Thanks
Ma Ling
Comment 5 MaLing 2009-01-09 05:57:02 UTC
(In reply to comment #4)
> hi,
> Could you try the command  $xrandr --output VGA --left-of LVDS when when you
> boot up the laptop without an external monitor connected(as you said the
> desktop was corrupted), instead of Option "LeftOf" "LCD" in config file.
> Thanks
> Ma Ling

sorry please use  "$xrandr --output LVDS --pos 0x0" to replace above one.
Comment 6 Udo Rader 2009-01-09 06:35:22 UTC
ok, just to be clear about this:

If I boot up without an external monitor connected having this Monitor section in xorg.conf ...

------CUT------
Section "Monitor"
    Identifier "ExtVGA"
    VendorName "Hanns.G"
    ModelName "Hanns.G HG221D"
    HorizSync 31-80
    VertRefresh 56-75
    Option "LeftOf" "LCD"

    # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
    Modeline "1680x1050_60"  147.14  1680 1784 1968 2256  1050 1051 1054 1087
-HSync +Vsync
    Option "DPMS"
EndSection
------CUT------

... then the background is corrupted.

And if I then invoke "$xrandr --output LVDS --pos 0x0" as you suggested, the corruption goes away :-)

Comment 7 MaLing 2009-01-09 06:40:50 UTC
hi Udo Rader,
thanks for your reply soon.I think it is not driver problem,
for more detail info how to configure dual head, please refer to http://intellinuxgraphics.org/dualhead.html.

Thanks
Ma Ling
Comment 8 Udo Rader 2009-01-09 06:54:43 UTC
Hmm, I still don't see where I am wrong, sorry :-)

Is there something missing from my xorg.conf?

The only thing that I did not specify is 

"Virtual x y"

in the "Screen" section, but I don't understand why I should be required to set this (optional) parameter.

Comment 9 MaLing 2009-01-13 02:27:30 UTC
hi Udo Rader 

please try below configuration.
(use the below 2 sections to replace original ones )

Section "Monitor"
    Identifier "LCD"
    Option "DPMS"
    Option "LeftOf" "ExtVGA"
EndSection

Section "Monitor"
    Identifier "ExtVGA"
    VendorName "Hanns.G"
    ModelName "Hanns.G HG221D"
    HorizSync 31-80
    VertRefresh 56-75
    Option  "Position" "1920 0"

    # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
    Modeline "1680x1050_60"  147.14  1680 1784 1968 2256  1050 1051 1054 1087
-HSync +Vsync
    Option "DPMS"
EndSection

and Virtual x y set as Virtual 3600 2048

Thanks
Ma Ling
Comment 10 MaLing 2009-01-15 06:47:53 UTC
hi  Udo Rader,
how about your desktop of laptop now ?
Comment 11 MaLing 2009-01-18 21:21:09 UTC
(In reply to comment #8)
> Hmm, I still don't see where I am wrong, sorry :-)
> Is there something missing from my xorg.conf?
hi   Udo Rader  
Because your laptop is  primary screen, you should make it as left one(position 0 0).
then tell VGA start position .e.g Option  "Position" "1920 0"


> The only thing that I did not specify is 
> "Virtual x y"
> in the "Screen" section, but I don't understand why I should be required to set
> this (optional) parameter.
I 'm not sure whether it must be set,  but the option tell Xorg how much memory we need to show on the screen.

your bug has been fixed ?


thanks
Ma Ling
Comment 12 Udo Rader 2009-01-19 04:59:41 UTC
sorry for the late response, I had been out of office.

For the problem itself, I also had to modify my LCD panel definition like this:

Section "Monitor"
    Identifier "LCD"
    Option "DPMS"
    Option "LeftOf" "ExtVGA"
    Option  "Position" "0 0"
EndSection

Without Position 0 0, the external & interal screens were somewhat "merged" at the border.

But, the solution you provided does not really solve my problem.

My primary display is the laptop's LCD screen, located _at the right_ of the external VGA.

So I tried to alter my configuration like this:

----CUT----
Section "Monitor"
    Identifier "LCD"
    Option "DPMS"
    Option "RightOf" "ExtVGA"
    Option  "Position" "1680 0"
EndSection

Section "Monitor"
    Identifier "ExtVGA"
    VendorName "Hanns.G"
    ModelName "Hanns.G HG221D"
    HorizSync 31-80
    VertRefresh 56-75
    Option  "Position" "0 0"

    # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
    Modeline "1680x1050_60"  147.14  1680 1784 1968 2256  1050 1051 1054 1087
-HSync +Vsync
    Option "DPMS"
EndSection

And Virtual 3600 2048 given in both Screen sections
----CUT----

That gives me a working dual head configuration when both monitors are present, but still leaves me with a corrupted background when the external VGA monitor is not connected.
Comment 13 MaLing 2009-01-19 18:59:02 UTC
hi Udo Rader 

I found the problem will occur at 2.5.1 version.
Could you update your driver as latest version from master tree?

Thanks
Ma Ling
Comment 14 Michael Fu 2009-01-21 01:13:00 UTC
Udo, for the screenshot you attached. did you get screenshot from your LVDS directly? ( i.e. the left part of LVDS panel is correct, the right part of LVDS panel is garbelled? )

I'm asking because not sure if you stitch two screenshots (one from VGA, one from LVDS ) into one..  
Comment 15 Udo Rader 2009-01-21 07:20:45 UTC
What is "the latest version"? The "best" I can easily get is 2.6.0, that is by updating my box to the latest Mandriva development version ("cooker").

On the other hand, if you mean updating to the latest version from Git, that will be more work (because that probably means recompiling loads of packages).

And per the background image, I got it directly by aquiring a screenshot from LVDS using Gimp, so I did not stitch together two images.
Comment 16 Udo Rader 2009-01-22 05:27:30 UTC
I now upgraded my system so that it uses version 2.6.0.

And I still see the mentioned problem occuring here.
Comment 17 MaLing 2009-02-01 22:42:33 UTC
hi Udo Rader,
I have set up the same environment with you, please upstream your xorg.conf file.
Thanks
Ma Ling


Comment 18 Udo Rader 2009-02-02 07:39:14 UTC
xorg.conf will follow in a second, but just another note: after upgrading to 2.6.1, I don't have the issue any more.
Comment 19 Udo Rader 2009-02-02 07:41:02 UTC
Created attachment 22477 [details]
xorg.conf giving corrupt background until <= 2.6.0
Comment 20 MaLing 2009-02-02 22:21:58 UTC
hi Udo Rader,

Thanks for your help, I will close the issue now.

Regards
Ma Ling
  


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.