I’ve had this issue in one way or another for a long time now (years), and in multiple configurations. I’ve updated the driver & kernel on multiple occasions, and at this point I’m really at a loss as to where the culprit is.
It seems to be some kind of race condition where if one monitor is ‘ready’ before the other, the other just gets ‘No Input’, despite xrandr (and i3) thinking it’s connected and should be working.
- One 4K monitor
- One 1080p monitor
Behavior: Both monitors goes to sleep (from inactivity), and upon moving the mouse only one of them (the 1080p monitor) correctly wakes. The other one wakes a few seconds later, but then shows ‘No Input’.
xrandr.sh (old version, see below for the new version)
- I can’t say for certain if I had to do something else to get it working (the whole process became muscle memory more or less…)
- One 4K monitor (same as previous setup)
- One 4K monitor (new)
Behavior: Similar behavior, but now the behavior applies to the new monitor. The old one behaves just fine (just like the old 1080p monitor).
Workaround 1 (remembering to wake the monitor first):
- (before waking screens by moving mouse/keyboard) Wake ‘slow’ screen by using menu buttons on monitor
- When monitor has completed resume from standby and shows menu items, move mouse/keyboard to wake monitors.
- Both monitors work correctly!
Workaround 2 (forgetting to wake the monitor first):
- (move mouse/keyboard) Both monitors wake. One works correctly, the other takes more time to wake from suspend and then just shows ‘No Input’.
xrandr --output HDMI-0 --off, which puts the monitor back in standby.
- Apply workaround 1.
- Both monitors work correctly!
Nvidia driver version (from Arch repos): 455.45.01-6
$ lspci | grep NV
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
Screen 0: minimum 8 x 8, current 7680 x 2160, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm
3840x2160 60.00*+ 59.94 50.00 30.00 29.97 25.00 23.98 23.98
1920x1080 60.00 59.94 50.00 60.00 50.04
1280x1024 75.02 60.02
1280x720 60.00 59.94 50.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
640x480 75.00 72.81 59.94
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 1280mm x 720mm
4096x2160 29.97 + 25.00 24.00 23.98
3840x2160 29.97* 25.00 23.98 23.98
1920x1080 60.00 59.94 50.00 29.97 25.00 23.98 60.00 50.04
1280x720 59.94 50.00
640x480 59.95 59.93 59.94
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
dmesg shows nothing out of the ordinary.
# This used to be uncommented, but doesn't cut it anymore with the new setup
#xrandr --output HDMI-0 --off
xrandr --output HDMI-0 --primary --mode 3840x2160 --panning 0x0
xrandr --output DP-1 --mode 3840x2160 --right-of HDMI-0
Over the years, I’ve googled several times for similar issues, and I’ve never really found anything promising. I used to think it was something weird with the old 4K monitor (like a bad EDID), but now that I’m having the same issue with the new monitor I’ve discarded that suspicion.
I’ve found a lot of threads about screens failing to resume after suspend (usually fixed with
modeset), but in my case there’s no real suspend happening, it’s simply a screen off/blanking (and it only happens for one of the monitors!). Furthermore, I’ve also not found any issue similar to mine with respect to the ‘race condition’-like nature of the issue/workaround.
Get this bounty!!!