Comment 8 for bug 861426

Revision history for this message
Chris Halse Rogers (raof) wrote :

Ok. When xrandr turns off the LVDS display, the *only* thing it does is set the LVDS' CRTC to "off".

Tracing through gnome-desktop's RANDR code, on the other hand, we have:
0) Grab the server
1) First, set all CRTCs to off.
2) Now, foreach output, assign the first valid CRTC to it
2*) If some outputs did not have a valid CRTC, bail
3) Set each CRTC to the appropriate mode, attached to the appropriate output
4) Ungrab the server.

This would appear to have two results:
1) gnome-desktop can reject valid setups should there be a CRTC with restrictions on which outputs it can drive (which is extremely common), and
2) gnome-desktop does a whole lot of unnecessary work on modeswitch.

Somewhere in that extra work, something is going wrong. I'm not entirely sure what it is, though. One of the side-effects is that disabling the LVDS will cause gnome-desktop to drive the external display with a different CRTC, but xrandr happily switches between different CRTCs on my external display…