Bug 94258

Summary: X crashes when using ARandR to rotate screen or change resolutions
Product: xorg Reporter: Eric <knoppix1337>
Component: Driver/openchromeAssignee: Openchrome development list <openchrome-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log file after trying to rotate screen
none
Xorg.0.log.old file, I tried rotate right, 180, left
none
Xorg.0.log file after debug updates and rotate right
none
Xorg.0.log.old file after debug updates and rotate right
none
Xorg.0.log booting Cx0
none
Xorg.0.log.old booting Cx0
none
Xorg.0.log after ARandR rotate right, 0.4.108
none
Xorg.0.log after Ctrl-Alt-F1, F7 (after rotate right freeze)
none
Xorg.0.log screen corrupt after ARandR changing resolution
none
Picture of corrupted screen after changing resolution
none
Xorg.0.log after ARandR rotate right, 0.4.158 none

Description Eric 2016-02-23 05:51:52 UTC
Created attachment 121905 [details]
Xorg log file after trying to rotate screen

Tested on Lubuntu 12.04 i386 , compiled OpenChrome from git.

Current setup: Wyse Vx0LE http://www.parkytowers.me.uk/thin/wyse/vx0/WyseV90LE.shtml , 
lspci shows: [S3 Unichrome Pro] (rev 01), 
HP LP2065 4:3 monitor, VGA mode (DVI-VGA adapter) 1600x1200 60hz. 

I installed ARandR and tried to rotate the screen and/or change resolutions. If I go 180' a dialog box comes up and says:
XRandR failed:XRandR returned error code 1: xrandr: Configure crtc 0 failed
See pic: https://flic.kr/p/DrMXB9

If I rotate 90' or 270' the display blanks out and the login box appears after a bit. (X crashes).

If I try to change resolutions the display blanks out and the login box appears after a bit. (X crashes).
 
dmesg shows:
agpgart-via 0000:00:00:0: AGP V3 bridge
agpgart-via 0000:00:00:0: putting agp V3 device into 8x mode
pci 0000:01:00:0: putting agp V3 device into 8x mode
Comment 1 Eric 2016-02-23 06:05:19 UTC
Created attachment 121908 [details]
Xorg.0.log.old file, I tried rotate right, 180, left

Xorg.0.log.old file, I tried rotate right, 180, left.

In case you need it. X crashed more than once.
Comment 2 Bartosz Kosiorek 2016-02-23 08:40:05 UTC
Hello Eric.

Please install Debug packages, reproduce crash and paste Xorg.0.log file. It will be very useful in case of analysing code.

For Ubuntu it is packages:

  sudo apt-get install xserver-xorg-core-dbg xserver-xorg-video-openchrome-dbg


Could you please also build openchrome with command:
   
  make CFLAGS="-g -O0"

This command will produce debugging information in the operating system's native format.
Comment 3 Eric 2016-02-24 06:56:10 UTC
OK, so I made those changes and here you go, the result of selecting Outputs> VGA-1> Orientation> Right.
Comment 4 Eric 2016-02-24 06:59:45 UTC
Created attachment 121936 [details]
Xorg.0.log file after debug updates and rotate right
Comment 5 Eric 2016-02-24 07:02:33 UTC
Created attachment 121937 [details]
Xorg.0.log.old file after debug updates and rotate right

Timestamps looked odd so I'm including this file also
Comment 6 Kevin Brace 2016-02-29 05:21:56 UTC
Hi Eric,

Thank you for reporting the bug.
I would imagine that it will take some time to fix this bug (possibly several months), but as far as I am concerned, I am aware of the existence of this bug.
During my own testing, I have noticed that when I am in dual screen mode (screen cloing), and when I change the screen resolution of the VGA monitor, say from 1024 X 768 to 800 X 600, the GUI will crash.
I have done some analysis on this bug, and at least I have an approximate idea of where in the code the crash happens.
That is all I can say for now.
Comment 7 Eric 2016-03-18 06:20:41 UTC
Tested hardware: Wyse Cx0
lspci shows: 00:01.0 VGA compatible controller: VIA Technologies, Inc. VX855/VX875 Chrome 9 HCM Integrated Graphics
Kernel: 3.2.0-23-generic-pae #36-Ubuntu 
Current OpenChrome from git 

On the Cx0, currently, you can change the resolution (only tested current OpenChrome, just got machine up). It boots to 640x480 on the VGA and it shows LVDS-1 active at 640x407. You CAN deactivate the LVDS and set the VGA to 1600x1200, without crashing X. 

Let me know if you need the "Boots to VGA 640x480 and LVDS 640x407" filed as a separate bug

Tested current OpenChrome on the Vx0LE and it still exibits same behavior (crashes).
Comment 8 Eric 2016-03-18 06:23:53 UTC
Created attachment 122401 [details]
Xorg.0.log booting Cx0
Comment 9 Eric 2016-03-18 06:42:48 UTC
Created attachment 122402 [details]
Xorg.0.log.old booting Cx0

Timestamps looked odd so I'm including this too.
Comment 10 Kevin Brace 2016-04-13 22:16:52 UTC
Hi Eric,

I have made some progress on the screen resolution change crash you have reported.
I did find the cause of why the computer was crashing X server when the screen resolution was changed.
However, it is still unlikely to work completely since the current code will crash the display controller hardware when the screen resolution is changed from the OS.
I am giving highest priority to fixing this bug right now, and many of the code commits I have done since the release of OpenChrome Version 0.4.0 is basically the preparation work for fixing this bug.
This improvement in the screen resolution change code works in laptops where 2 displays are working simultaneously, but I have also observed that it does crash the display controller hardware in systems with only 1 active display controller at this point.
This crash pattern has been observed in several desktop type hardware (i.e., CLE266 and P4M890) with only 1 active display controller.
I have been able to test extended screen, and I can now get 1280 X 800 FP screen and 640 X 480 VGA screen to function as an extended screen using ARandR you have introduced to me.
The total screen resolution appears to be limited by the 2048 dot X direction limitation set by the X server or existing OpenChrome code. 
I will say that you should give the current master branch code a try (Version 0.4.107), and see how it performs.
Comment 11 Eric 2016-04-14 06:43:40 UTC
Current setup: WYSE Vx0LE, Lubuntu 12.04
Dual HP LP2065 4:3 monitors, one DVI mode, one VGA mode (DVI/VGA "Y" adapter) 1600x1200 60hz. 

Openchrome 0.4.108

When I select "Outputs > VGA-1 > Orientation > right" and Apply, the VGA screen blanks and then goes to sleep, the mirrored display on the DVI freezes with the display and mouse cursor visible.

If I Ctrl-Alt-F1 to the console I get the console mirrored on both displays.

If I hold return for a second to cause the console display to scroll, the mouse cursor appears where it was frozen on both displays.

If I Ctrl-Alt-F7 back to X the VGA screen blanks and goes back to sleep. Don't remember what the DVI screen did. It did generate a new Xorg.0.log which I will include.
Comment 12 Eric 2016-04-14 06:45:47 UTC
Created attachment 122922 [details]
Xorg.0.log after ARandR rotate right, 0.4.108
Comment 13 Eric 2016-04-14 06:47:58 UTC
Created attachment 122924 [details]
Xorg.0.log after Ctrl-Alt-F1, F7 (after rotate right freeze)
Comment 14 Eric 2016-04-14 07:16:37 UTC
Current setup: WYSE Vx0LE, Lubuntu 12.04
Dual HP LP2065 4:3 monitors, one DVI mode, one VGA mode (DVI/VGA "Y" adapter) 1600x1200 60hz. 

OpenChrome 0.4.108

If I try to use ARandR to change resolutions the screen becomes corrupted (both DVI and VGA screens since they are mirrored now). If I Ctrl-Alt-F1 to the console, the console shows up fine, but if I Ctrl-Alt-F7 back to X it shows a corrupted version of the console screen.

I went from 1600x1200 to 1280x1024.
Comment 15 Eric 2016-04-14 07:18:54 UTC
Created attachment 122925 [details]
Xorg.0.log screen corrupt after ARandR changing resolution
Comment 16 Eric 2016-04-14 07:20:25 UTC
Created attachment 122926 [details]
Picture of corrupted screen after changing resolution
Comment 17 Kevin Brace 2016-05-29 08:47:26 UTC
Hi Eric,

Please try Version 0.4.158.

https://cgit.freedesktop.org/openchrome/xf86-video-openchrome/commit/?id=21ae2b4c3c02812a69e9162791c6db2e6ec36842

I am fairly confident that it fixed your runtime screen resize and RandR bug you originally reported.
Regarding rotation, it is a very low priority feature at this point.
Comment 18 Eric 2016-06-02 00:42:28 UTC
Current setup: WYSE Vx0LE, Lubuntu 12.04
Dual HP LP2065 4:3 monitors, one DVI mode, one VGA mode (DVI/VGA "Y" adapter) 1600x1200 60hz. 

OpenChrome 0.4.158

I can now change resolutions using ARandR with no problems or crashes. Thanks.

If I try to rotate to "right" or "left", X no longer crashes, but now gives the error that "inverted" originally gave (and still does):
XRandR failed:XRandR returned error code 1: xrandr: Configure crtc 0 failed

So, although rotate is not working, X no longer "crashes using ARandR to rotate screen or change resolutions", so you can technically close this bug, unless you want to keep it as a placeholder for further rotate work.

Thanks, 
Eric.
Comment 19 Eric 2016-06-02 00:44:09 UTC
Created attachment 124251 [details]
Xorg.0.log after ARandR rotate right, 0.4.158
Comment 20 ju chen 2016-06-02 06:30:15 UTC
Hi,all,I tried Version 0.4.158.

Current setup: VX900
Kernel: 3.19-rc6-openchrome
Lenovo monitors, VGA mode.

If I rotate 90' ,for example:

#xrandr -o right
X Error failed request:BasMatch (invalid parameter attributes)
Major opcode of faield request:139(RANDR)
Minor opcode of faield request:2(RRSetScreenConfig)
Serial number of failed request:14
Current serial number in output stream:14

So, I change the Kerner ,now the kerner version is 3.19-rc6+.
I use the same command the display blanks out . (X crashes).
Comment 21 Kevin Brace 2016-06-04 01:02:32 UTC
(In reply to Eric from comment #18)

Hi Eric,

> Current setup: WYSE Vx0LE, Lubuntu 12.04
> Dual HP LP2065 4:3 monitors, one DVI mode, one VGA mode (DVI/VGA "Y"
> adapter) 1600x1200 60hz. 
> 
> OpenChrome 0.4.158
> 
> I can now change resolutions using ARandR with no problems or crashes.
> Thanks.
> 
> If I try to rotate to "right" or "left", X no longer crashes, but now gives
> the error that "inverted" originally gave (and still does):
> XRandR failed:XRandR returned error code 1: xrandr: Configure crtc 0 failed
> 
> So, although rotate is not working, X no longer "crashes using ARandR to
> rotate screen or change resolutions", so you can technically close this bug,
> unless you want to keep it as a placeholder for further rotate work.
> 
> Thanks, 
> Eric.

I am glad the runtime screen resize is now working.
It is embarrassing that this significant of a bug went into the repository code probably due to lack of testing.
As I have promised back in late February, it took time to figure out why this was happening, and to be honest, it took me a lot of time to identify the area of the code that was directly contributing to this crash.
    As for rotation support, I will add it to the wishlist, but I will going to have to give it a low priority since OpenChrome still has too many problems as a graphics device driver, and fixing those other problems will likely take precedence.
Personally, it is my view that features not implemented should be disabled since it leads to a crash anyway, and rotation feature should be handled this way.
If I read it correctly, most VIA IGPs since UniChrome Pro have hardware rotation support.
If there is going to be rotation support, it will have to be via the rotation hardware.
Since you think I can close the bug, I will close the bug shortly.
Comment 22 Kevin Brace 2016-06-04 01:04:40 UTC
(In reply to ju chen from comment #20)

Hi Ju,

> Hi,all,I tried Version 0.4.158.
> 
> Current setup: VX900
> Kernel: 3.19-rc6-openchrome
> Lenovo monitors, VGA mode.
> 
> If I rotate 90' ,for example:
> 
> #xrandr -o right
> X Error failed request:BasMatch (invalid parameter attributes)
> Major opcode of faield request:139(RANDR)
> Minor opcode of faield request:2(RRSetScreenConfig)
> Serial number of failed request:14
> Current serial number in output stream:14
> 
> So, I change the Kerner ,now the kerner version is 3.19-rc6+.
> I use the same command the display blanks out . (X crashes).

Okay, I did a similar test with the UMS code, and I have seen similar results.
Since this bug report focused on runtime screen resize, I would like to propose that you file a new bug report, and I will try to handle the matter with the new bug report.
Comment 23 Kevin Brace 2016-06-04 01:23:47 UTC
Resize bug fixed by 21ae2b4c3c02812a69e9162791c6db2e6ec36842.

https://cgit.freedesktop.org/openchrome/xf86-video-openchrome/commit/?id=21ae2b4c3c02812a69e9162791c6db2e6ec36842

In order to have runtime screen resize support, use OpenChrome Version 0.4.158 or later.
The rotation bug will be dealt in a separate bug report.

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.