SteamOS icon indicating copy to clipboard operation
SteamOS copied to clipboard

Waking from sleep into a VRR-enabled state causes monitor error/no display

Open dangerousdonut opened this issue 1 year ago • 2 comments

Your system information

  • Steam client version: 1715635533
  • SteamOS version: 3.6.2
  • Dock Firmware Version: 0.13.15.124
  • Opted into Steam client beta?: Yes
  • Opted into SteamOS beta?: Yes
  • Have you checked for updates in Settings > System?: Yes

Please describe your issue in as much detail as possible:

When playing a game or sitting in the Steam UI with VRR enabled, I expect that when putting your system to sleep and then waking it, the Steam Deck will still output to its connected external display.

However, what happens instead is that waking from sleep into a VRR-enabled state prevents any image from being shown on my monitor. The monitor shows an error notice saying "OUT OF RANGE".

When booting the system up (or restarting) into a VRR-enabled state, this error doesn't seem to occur. I believe it did happen once though, and I've also had the system crash upon restart in this scenario, but that may be unrelated.

This is using a Steam Deck connected to an external monitor using the Steam Deck Docking station and Displayport.

Turning the monitor off and on again when the OUT OF RANGE error is shown will then reconnect/output properly even if VRR remained enabled.

Leaving the monitor off at wakeup and then turning it on at a later point also lets it output properly.

Steps for reproducing this issue:

  1. In game mode, enable VRR in your current session
  2. Put your system to sleep
  3. Wake the system back up

dangerousdonut avatar May 15 '24 12:05 dangerousdonut

This issue is still occurring on the SteamOS 3.6.8 beta branch.

My setup is a LG C2 television with freesync enabled using an HDMI 2.0 cable at 1440p120 (and tested on 1080p120 as well). Whether it was put on sleep or in shutdown mode does not matter. The output will not be displayed on the screen unless you do either the following:

  1. Turn off VRR in the quick menu + disable freesync on the LG C2.
  2. Remove the USB-C charger. 'Straight to Electric Socket' trick (not plugging into a surge protector) does not work in my case.

drnaniwat avatar Jul 16 '24 19:07 drnaniwat

The issue is still occuring on the SteamOS 3.6.12 beta branch. Steps are the same as above.

drnaniwat avatar Sep 07 '24 09:09 drnaniwat

Issue is still occuring on the SteamOS 3.6.19 beta and stable branch. Steps are the same as above.

drnaniwat avatar Oct 26 '24 22:10 drnaniwat

I took a look at this today and I was able to repro the issue, although I'm still not positive about the real source of it. I suspect Gamescope since changing kernels had no effect (tried 6.1, 6.5, 6.8, and amd-staging-drm-next) but I need to experiment a bit more.

matte-schwartz avatar Oct 27 '24 01:10 matte-schwartz

this is actually looking more like a potential drm/amd issue with Vangogh to me :/ under identical conditions, I am unable to reproduce the black screen after resume with VRR enabled on a Zen4 chipset (Z1E) using the same dock, same OS version, etc.

I'll file an issue report upstream once I gather some data and logs

EDIT: issue reported here: https://gitlab.freedesktop.org/drm/amd/-/issues/3715

matte-schwartz avatar Oct 27 '24 21:10 matte-schwartz

I've had this issue using a PC running SteamOS. AMD Ryzen 7 7840HS & AMD Radeon RX 7900 XT.

I've recently updated Mesa to 24.1, and the kernel to 6.11.6-arch1-1 from the main Arch repo, and the issue has disappeared. I believe the kernel was the key for me. Mesa 24.1 improved performance of my graphics card, though!

tacomilkshake avatar Nov 13 '24 04:11 tacomilkshake

While I don’t get a black screen when waking from sleep if VRR is enabled, I do get a buggy/flickery screen on my LG C4. Toggling VRR on and off (not always easy depending on how much the menu is jumping around) in the quick menu resolves it, but it definitely happens every time.

My semi-workaround is to only enable VRR on a per-game basis and not put it to sleep when it’s in game, but this has also seemed to occasionally cause weird artifacts on the edge of the screen (which are also fixed by toggling VRR on and off).

BirbObserb avatar Feb 18 '25 02:02 BirbObserb

Adding to my previous comment - I get no display when waking from sleep if the deck dock resolution is set to anything other than either 3840x2160@60 (the native resolution of the TV) or the “automatically set resolution” option. This means if I set it to 2560x1440@120, if I wake it from sleep I need to unplug the deck from the dock and plug it back in to get the picture back on the TV.

Weirdly enough disabling Freesync in the LG C4 menu doesn’t actually seem to work with the Steam Deck official dock. Even if the setting is disabled, it seems to light up and start running anyway when the Deck is connected (rapidly pressing the LG remote green button shows VRR info). Not sure if that’s a bug with the TV or something to do with how it’s reading a PC input. (Update 2/27: this doesn’t happen with a third party dock, a BenQ GR10, but this dock won’t wake it from sleep even with the automatic setting checked if VRR is on, which makes me think Valve might’ve done some kind of partial fix with the official dock).

There is an odd workaround: On the quick settings menu, make sure the last option your cursor hovers over is “enable VRR” (it doesn’t matter if it’s on or off) when you put the system to sleep. Wake it up with a controller, then when the controller connects, despite there being no display, press the quick menu key combination (guide + A on an XBox controller), then push right on the d-pad followed by the A button to toggle VRR. The display then appears.

BirbObserb avatar Feb 21 '25 03:02 BirbObserb

There is an odd workaround: On the quick settings menu, make sure the last option your cursor hovers over is “enable VRR” (it doesn’t matter if it’s on or off) when you put the system to sleep. Wake it up with a controller, then when the controller connects, despite there being no display, press the quick menu key combination (guide + A on an XBox controller), then push right on the d-pad followed by the A button to toggle VRR. The display then appears.

Thank you for the workaround. I can confirm the trick works on my end.

drnaniwat avatar Feb 21 '25 20:02 drnaniwat