Steam Deck

Steam Deck

Since 3.5.17, refresh rate of external monitor resets to 60hz after sleep
Since updating to 3.5.17, every time I set the Deck to sleep while it's docked (using Valve's own dock), the targeted refresh rate for my external display is set/reverted to 60hz, down from the 180hz I normally set it at.

The expected behavior is for the refresh rate that I set in Dispay Settings to stay the same after putting the Deck to sleep, rather than changing itself to 60hz.
Last edited by okcomputing; Mar 2, 2024 @ 12:37pm
< >
Showing 1-15 of 18 comments
okcomputing Mar 3, 2024 @ 9:35am 
In addition to the above, the frame limiter completely stops working.
deaddoof Mar 3, 2024 @ 10:45am 
Are you talking about game mode or desktop mode?
okcomputing Mar 4, 2024 @ 1:52am 
Originally posted by deaddoof:
Are you talking about game mode or desktop mode?

It's only happening in game mode. Putting the Deck to sleep and waking it in desktop mode retains my desired refresh rate.

Additional details:

In game mode, the frame rate limiter continues to display the "old" refresh rate's maximum frame rate (e.g. 180) instead of a maximum of 60 fps after the described reset.

Changing the refresh rate back to my desired one doesn't change it immediately. It requires applying it twice for it to take.

My monitor's OSD confirms that it is a refresh rate change to 60hz rather than the frame rate being capped to 60 fps.

I re-imaged the Deck for a separate issue, and this refresh rate bug persisted.
Last edited by okcomputing; Mar 4, 2024 @ 2:15am
deaddoof Mar 4, 2024 @ 2:59am 
Originally posted by okcomputing:
Originally posted by deaddoof:
Are you talking about game mode or desktop mode?

It's only happening in game mode. Putting the Deck to sleep and waking it in desktop mode retains my desired refresh rate.

Additional details:

In game mode, the frame rate limiter continues to display the "old" refresh rate's maximum frame rate (e.g. 180) instead of a maximum of 60 fps after the described reset.

Changing the refresh rate back to my desired one doesn't change it immediately. It requires applying it twice for it to take.

My monitor's OSD confirms that it is a refresh rate change to 60hz rather than the frame rate being capped to 60 fps.

I re-imaged the Deck for a separate issue, and this refresh rate bug persisted.

Someone found the game mode config here

https://steamcommunity.com/app/1675200/discussions/3/3771239049944984767/#c4300445879346263688

You should also report the bug with your monitor to gamescope here

https://github.com/ValveSoftware/gamescope/issues

https://unix.stackexchange.com/questions/114359/how-to-get-edid-for-a-single-monitor

Look at option 3
okcomputing Mar 4, 2024 @ 4:08am 
Originally posted by deaddoof:
Someone found the game mode config here

https://steamcommunity.com/app/1675200/discussions/3/3771239049944984767/#c4300445879346263688

You should also report the bug with your monitor to gamescope here

https://github.com/ValveSoftware/gamescope/issues

https://unix.stackexchange.com/questions/114359/how-to-get-edid-for-a-single-monitor

Look at option 3

Thanks for the suggestion. I tried to find the EDID using the methods listed, but I couldn't make heads or tails out of the process. I found the files down in the sys folder, but that's as far as I could get.

The commands people listed in the comments weren't recognized, and I'm not well versed enough in Konsole or Linux generally to figure out what to do or how to interpret results :c
Last edited by okcomputing; Mar 4, 2024 @ 4:10am
deaddoof Mar 4, 2024 @ 4:35am 
Originally posted by okcomputing:

Thanks for the suggestion. I tried to find the EDID using the methods listed, but I couldn't make heads or tails out of the process. I found the files down in the sys folder, but that's as far as I could get.

The commands people listed in the comments weren't recognized, and I'm not well versed enough in Konsole or Linux generally to figure out what to do or how to interpret results :c

sudo cat /sys/....../edid > output.edid

The ... is because I do not know the full path but cat allow you to dump file contents into another file. /sys directory is created by the kernel and allow various utilities to read kernel information with regular file utitiles.


You can upload here to check whether the edid file is valid

https://people.freedesktop.org/~imirkin/edid-decode/
deaddoof Mar 4, 2024 @ 4:36am 
https://help.steampowered.com/en/faqs/view/4FD6-1AD6-CDD5-D31E

Create a deck password to gain root access.
okcomputing Mar 4, 2024 @ 11:15am 
Originally posted by deaddoof:
Originally posted by okcomputing:

Thanks for the suggestion. I tried to find the EDID using the methods listed, but I couldn't make heads or tails out of the process. I found the files down in the sys folder, but that's as far as I could get.

The commands people listed in the comments weren't recognized, and I'm not well versed enough in Konsole or Linux generally to figure out what to do or how to interpret results :c

sudo cat /sys/....../edid > output.edid

The ... is because I do not know the full path but cat allow you to dump file contents into another file. /sys directory is created by the kernel and allow various utilities to read kernel information with regular file utitiles.


You can upload here to check whether the edid file is valid

https://people.freedesktop.org/~imirkin/edid-decode/

Thanks for helping out! The command didn't seem to work. It asked for a password, which I entered, and then nothing happened and I didn't see any new files in that target folder.

But! Combining the xrandr --verbose command from the other page you linked with the edid-decode website you provided, I was able to get a reading of the monitor's edid.
deaddoof Mar 4, 2024 @ 11:39am 
Originally posted by okcomputing:


Thanks for helping out! The command didn't seem to work. It asked for a password, which I entered, and then nothing happened and I didn't see any new files in that target folder.

But! Combining the xrandr --verbose command from the other page you linked with the edid-decode website you provided, I was able to get a reading of the monitor's edid.

Remember to make a bug report at game scope. They might be parsing your monitor's edid wrong. Btw, the /sys dir isn't the full path. I am not surprise at the command failing.
Last edited by deaddoof; Mar 4, 2024 @ 11:40am
okcomputing Mar 4, 2024 @ 11:56am 
Originally posted by deaddoof:
Originally posted by okcomputing:


Thanks for helping out! The command didn't seem to work. It asked for a password, which I entered, and then nothing happened and I didn't see any new files in that target folder.

But! Combining the xrandr --verbose command from the other page you linked with the edid-decode website you provided, I was able to get a reading of the monitor's edid.

Remember to make a bug report at game scope. They might be parsing your monitor's edid wrong. Btw, the /sys dir isn't the full path. I am not surprise at the command failing.

I figured it out eventually (was looking in the wrong folder, the edid.output file was in Home), but in the edid that was spit out, there is this odd block at the end that says the following:

edid-decode SHA: 84ddf9155376 2021-10-03 10:37:45 Warnings: Block 1, CTA-861 Extension Block: Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0. EDID: Base EDID: Some timings are out of range of the Monitor Ranges: Horizontal Freq: 15.625 - 212.019 kHz (Monitor: 250.000 - 250.000 kHz) CTA-861: Multiple native progressive timings are defined. Failures: Block 1, CTA-861 Extension Block: Missing VCDB, needed for Set Selectable RGB Quantization to avoid interop issues. EDID conformity: FAIL

Not sure if this is essential or how I should fix this.
Last edited by okcomputing; Mar 4, 2024 @ 11:57am
deaddoof Mar 4, 2024 @ 11:59am 
Originally posted by okcomputing:
Originally posted by deaddoof:

Remember to make a bug report at game scope. They might be parsing your monitor's edid wrong. Btw, the /sys dir isn't the full path. I am not surprise at the command failing.

I figured it out eventually, but in the edid that was spit out, there is this odd block at the end that says the following:

edid-decode SHA: 84ddf9155376 2021-10-03 10:37:45 Warnings: Block 1, CTA-861 Extension Block: Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0. EDID: Base EDID: Some timings are out of range of the Monitor Ranges: Horizontal Freq: 15.625 - 212.019 kHz (Monitor: 250.000 - 250.000 kHz) CTA-861: Multiple native progressive timings are defined. Failures: Block 1, CTA-861 Extension Block: Missing VCDB, needed for Set Selectable RGB Quantization to avoid interop issues. EDID conformity: FAIL

Not sure if this is essential or how I should fix this.

The xorg file isnt edid file. You have to grab it directly from /sys


find /sys -name edid

sudo cat /sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/card1-DP-1/edid > output.edid

The find command should look something like this.
okcomputing Mar 4, 2024 @ 12:12pm 
Originally posted by deaddoof:

The xorg file isnt edid file. You have to grab it directly from /sys


find /sys -name edid

sudo cat /sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/card1-DP-1/edid > output.edid

The find command should look something like this.

Thanks again for your patience with this, truly.

Alright, what I'm doing is putting that sudo cat command into Konsole -- except for me it's card0/card0-DP-1

sudo cat /sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card0/card0-DP-1/edid > output.edid

Then I grab the output.edid file that appears in the Home folder.

I put that into the website you linked to decode the file. I get a long readout of that file, which reads the same as what I posted at the end of this issue page:

https://github.com/ValveSoftware/SteamOS/issues/1410
(Different issue, but I figured it would be useful there too)

If that's the wrong file, I'm not sure at what point I took a wrong turn.
Last edited by okcomputing; Mar 4, 2024 @ 12:21pm
deaddoof Mar 4, 2024 @ 12:34pm 
Originally posted by okcomputing:
[/code]

Then I grab the output.edid file that appears in the Home folder.

I put that into the website you linked to decode the file. I get a long readout of that file, which reads the same as what I posted at the end of this issue page:

https://github.com/ValveSoftware/SteamOS/issues/1410
(Different issue, but I figured it would be useful there too)

If that's the wrong file, I'm not sure at what point I took a wrong turn.

Everything looks fine. They might ask for the output.edid or the raw edid file. Get in the habit of reporting your bugs. Earlier you find them, the faster they can biset the issue. In many cases, they will find a fix within a week or two. For harder problems, you may wait for years. Yep.

You can try the workaound. I never tried it myself, but you can try. Just backup the files within .config/gamescope

https://steamcommunity.com/app/1675200/discussions/3/3771239049944984767/#c4300445879346263688

check the contents within
cat ~/.config/gamescope/modes.cfg

I do not know how to edit this config file because I do not know where is the documentation. You can ask the maintainer at gamescope. You should dump the content of mode.cfg and give it to them while you are at it.
- Found a particularly interesting directory: `~/.config/gamescope` - `~/.config/gamescope/modes.cfg`: ```conf ONKYO Corporation TX-SR508: 1280x800@60 ``` Content seems to correlate with screen settings in Game Mode for connected external monitors allowing the user to manually choose a specific resolution and refresh rate. - `~/.config/gamescope/edid.bin`: Binary file which, presumably, contains structured data according to the EDID specification for the monitors that have been connected. - Changed resolution in `modes.cfg` to 1920x1080@60 - Conclusion - External monitor had incorrect resolution and refresh rate settings in both Game Mode and Desktop Mode causing no display. - By resetting settings in Desktop Mode and modifying the configuration file for Game Mode, the issue could be resolved. - The key to finding the solution was, in true Arch Linux fashion, understanding the system's architecture.

I hope they fix you bug by the next update or something. I personally do not like to remember workarounds in general.
okcomputing Mar 4, 2024 @ 12:45pm 
Originally posted by deaddoof:
Originally posted by okcomputing:
[/code]

Then I grab the output.edid file that appears in the Home folder.

I put that into the website you linked to decode the file. I get a long readout of that file, which reads the same as what I posted at the end of this issue page:

https://github.com/ValveSoftware/SteamOS/issues/1410
(Different issue, but I figured it would be useful there too)

If that's the wrong file, I'm not sure at what point I took a wrong turn.

Everything looks fine. They might ask for the output.edid or the raw edid file. Get in the habit of reporting your bugs. Earlier you find them, the faster they can biset the issue. In many cases, they will find a fix within a week or two. For harder problems, you may wait for years. Yep.

You can try the workaound. I never tried it myself, but you can try. Just backup the files within .config/gamescope

https://steamcommunity.com/app/1675200/discussions/3/3771239049944984767/#c4300445879346263688

check the contents within
cat ~/.config/gamescope/modes.cfg

I do not know how to edit this config file because I do not know where is the documentation. You can ask the maintainer at gamescope. You should dump the content of mode.cfg and give it to them while you are at it.
- Found a particularly interesting directory: `~/.config/gamescope` - `~/.config/gamescope/modes.cfg`: ```conf ONKYO Corporation TX-SR508: 1280x800@60 ``` Content seems to correlate with screen settings in Game Mode for connected external monitors allowing the user to manually choose a specific resolution and refresh rate. - `~/.config/gamescope/edid.bin`: Binary file which, presumably, contains structured data according to the EDID specification for the monitors that have been connected. - Changed resolution in `modes.cfg` to 1920x1080@60 - Conclusion - External monitor had incorrect resolution and refresh rate settings in both Game Mode and Desktop Mode causing no display. - By resetting settings in Desktop Mode and modifying the configuration file for Game Mode, the issue could be resolved. - The key to finding the solution was, in true Arch Linux fashion, understanding the system's architecture.

I hope they fix you bug by the next update or something. I personally do not like to remember workarounds in general.

Thanks for your advice. I'll definitely open an issue. It's been quite tedious having to reset the refresh rate constantly.

I had at a look at that modes.cfg file, and it looks fine in there. Says 1920x1080@180 as it should be.

Presumably 60hz is the native refresh of this monitor and due to some bug it's defaulting back to it on wakeup from sleep. Oddly, it doesn't exhibit this behavior on restarts or when switching between desktop and game mode.

I'll report it and keep my fingers crossed.
deaddoof Mar 4, 2024 @ 1:02pm 
Originally posted by okcomputing:


Thanks for your advice. I'll definitely open an issue. It's been quite tedious having to reset the refresh rate constantly.

You just explain my entire thought process of reporting bug. I also ended up in a habit reporting my workaround in the bug report too so I always forgot my workarounds too. I just look up my bug report to remember.

I do whatever will save me more time in the end. Living with janky behavior can be jarring.
< >
Showing 1-15 of 18 comments
Per page: 1530 50

Date Posted: Mar 2, 2024 @ 9:59am
Posts: 18