Bug 61461

Summary: *ERROR* failed to set mode on [CRTC:7] when changing xrandr settings
Product: Drivers Reporter: Oliver (oliver)
Component: Video(DRI - Intel)Assignee: intel-gfx-bugs (intel-gfx-bugs)
Status: RESOLVED DOCUMENTED    
Severity: high CC: daniel, intel-gfx-bugs
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.10.10-1-ARCH Subsystem:
Regression: No Bisected commit-id:
Attachments: journalctl output including call traces

Description Oliver 2013-09-16 15:28:21 UTC
Created attachment 108491 [details]
journalctl output including call traces

Hi,

if I want to attach two external monitors to my Lenovo T431s and deactivate the internal monitor I have this behaviour

When I run:

xrandr --output DP3 --primary --mode 2560x1440 --output DP2 --mode 2560x1440 --left-of DP3 --output eDP1 --off

  to deactivate the internal monitor and make one big extended monitor it does not work: i.e. I get black screens on all three monitors, sometimes the internal keeps working but the externals not.

The strange thing is that it works automatically with Gnome 3.8: The monitors are autodetected, the internal monitor is disabled and the two external monitors are activated. Without a Desktop Environment and with just a simple window manager (awesome in my case) the error described above occurs.

I would be glad to help in solving this issue.

Regards,
Oliver
Comment 1 Daniel Vetter 2013-09-16 16:17:34 UTC
Atm we don't support atomic modeset, so you X does changes step-by-step. Which means in-between it'll try to enable 3 outputs which won't work. If you split up the operation into 3 steps

1) Enable 1st external screen
2) Disable internal screen
3) Enabel 2nd external screen

it should work. Closing as not a bug, simple a misdesign of the current code.
Comment 2 Oliver 2013-09-17 09:58:50 UTC
Hi Daniel,

thanks for your answer. It works as you said.
However, maybe multiple modeset requests should be pipelined and executed one after the other if atomic modeset is not supported.
Comment 3 Daniel Vetter 2013-09-17 10:46:40 UTC
(In reply to Oliver from comment #2)
> Hi Daniel,
> 
> thanks for your answer. It works as you said.
> However, maybe multiple modeset requests should be pipelined and executed
> one after the other if atomic modeset is not supported.

That's what we're doing right now, but the ddx doesn't have the knowledge really to make a good call which order might actually work and which is the best. We really need to have a better interface to make this work well.
Comment 4 Oliver 2013-09-17 11:27:34 UTC
It's great to hear that this is being addressed!