With 375.20: usually when I resume from suspend, all my metamodes are invalidated

I’ve been experiencing this problem since I updated to 375.20. It doesn’t always happen, but I can’t spot what triggers (or avoids) the problem.

When I resume from suspend, the Xorg log shows the driver reporting that every mode cannot be revalidated and so it removes the mode, eventually leaving me with no valid display modes at all. My displays go to sleep and that’s it. I’ve tried fiddling with nvidia-settings and xrandr from a VT but nothing can get a mode back into the system. I have to restart X to recover. It’s obviously very annoying.

In the bug report tarball, look at the Xorg log for these messages.
nvidia-bug-report.log.gz (153 KB)

What type of cable do you use to connect your monitor to PC and what is your graphics card? I have this problem with all driver versions.

DisplayPort. Never happened until 375.20

I’m debugging a problem now where DisplayPort link training fails right after resume from suspend. Prior to 375.20, this caused the X server’s EnterVT operation to fail, which aborted the whole X server and killed your session.

Can you work around the problem when it occurs by unplugging the monitor from the GPU and plugging it back in, and then running “xrandr --auto”?

I did not see that failure case prior to 375.20 (but obviously if the code changed to handle that failure, it might have other consequences).

I tried various plugging/unplugging and I got the screens to come back once, but was never able to reproduce it.

I will try again.

When in the sequence do you want me to unplug and replug? after resume, I assume. So I unplug and replug and then vt switch to run xrandr? or unplug/replug while vt switched?

Yeah, after resume. I don’t know if running xrandr during a VT switch will work. Can you SSH into the system and run it that way?

Alternatively, queue up a “xrandr --auto” command in a terminal but don’t press enter. Then suspend, resume, unplug the monitor and replug it, and then press enter to execute the command.

I can ssh. I’ll try it out when I get back home today. Thanks.

Yep, that unwedged it.

Turns out I didn’t even need ‘xrandr --auto’. I just replugged the monitors and hit a key. Took quite a few seconds, but it eventually came back to the right configuration.