Resume after Suspend throttles GPU

- I'm on the deck-ISO, updated on April-5th but I've seen the issue since first installing ~two weeks ago - Machine is a custom HTPC, GPU is an RX 7600, CPU is a 7700x I have no issues with any hardware when running any games I've tried on normal launch and play for any amount of time, but after I sleep and then resume the GPU appears to be throttling / spiking to 100% usage and limits game performance. No real consistency in clocks or watts dropping when it does throttle (playing Zelda TOTK on yuzu watts drop to 35 when usually in the 50-60s, playing Risk of Rain 2 watts drop to 125 when usually around 140), but it says 100% usage in steam overlay and clearly is causing FPS slowdowns. If I close the game and relaunch whatever I was playing the throttling is completely gone. Not really sure how to troubleshoot this, but open to trying anything. Definitely curious if anyone else can replicate this. Thanks in advance.
16 Replies
rfrink
rfrinkOPβ€’8mo ago
Can anyone help me with this?
HikariKnight
HikariKnightβ€’8mo ago
try sudo /usr/libexec/bazzite-tdpfix not designed for this situation but i suspect the sysfs for the card somehow changed to 666 when the system got suspended, it should be 644 and that script fixes that (currently it is only run at boot but we might be able to make it also run on suspend resume)
rfrink
rfrinkOPβ€’8mo ago
Thanks, a bit confused though on the logistics of how to do this, are you suggesting in gaming mode I try and run that after resuming?
HikariKnight
HikariKnightβ€’8mo ago
easiest way to do this is through ssh from a different machine connect to the htpc using ssh after resume and run the command i posted and see if that fixes the issue can also go into nested desktop and run the command
rfrink
rfrinkOPβ€’8mo ago
thanks makes sense, I'll give it a try and report back
HikariKnight
HikariKnightβ€’8mo ago
please do πŸ™‚
rfrink
rfrinkOPβ€’8mo ago
Okay I tried it through nested desktop, it didn't resolve the issue. I ran commands to check what the sysfs was and it was already set to 644 before running the script. I was going to try and check what the power cap was but didn't have enough time to figure it out
HikariKnight
HikariKnightβ€’8mo ago
ok so it is not the permission causing the issue then when you do have the time check the power cap and default power cap (before and after suspend) just incase there is some weird behavior there (like it somehow changes the default tdp)
cat $(find /sys/class/hwmon/*/ -name "power*_cap")_default
cat $(find /sys/class/hwmon/*/ -name "power*_cap")
cat $(find /sys/class/hwmon/*/ -name "power*_cap")_default
cat $(find /sys/class/hwmon/*/ -name "power*_cap")
^ for your convenience as long as the default tdp stays the same, but the power cap has changed away from the default, it is most likely possible for us to write a workaround for it that affected people can enable to reset the tdp to default when waking from suspend again.
rfrink
rfrinkOPβ€’8mo ago
sweet, thanks for the commands, I'll check some time today
HikariKnight
HikariKnightβ€’8mo ago
in 100% of systems unless you adjust the tdp in any way, both should return the same value, as the non default value controls the max tdp allowed on the gpu
rfrink
rfrinkOPβ€’8mo ago
interesting, this has been happening since first using bazzite, i didn't intentionally touch anything until I started trying to figure this out
HikariKnight
HikariKnightβ€’8mo ago
well i am just saying what the expected value is supposed to be, which is they are supposed to be the same before and after suspend im guessing though that the power*_cap somehow is edited when the system is put in suspend mode and never recovers from that so for the test i expect before suspend: they both are the same value after suspend: default is higher than non default and if the latter is correct then that should be fixable with a service check that runs after suspend (as i believe we can have a systemd service trigger on unsuspend/wake)
rfrink
rfrinkOPβ€’8mo ago
Woah okay just tried it, both values are the same before and after suspending, 145 watts. I think I need to do some more troubleshooting, it's like on resume it tries to push the clocks and power draw towards its max but then thermal throttles which i think is why my GPU is showing 100% usage, but it still doesn't make sense why it ramps up on resume vs. just starting a game normally. I'll have to mess with some other games to get a clearler picture later. Thanks for your help so far
HikariKnight
HikariKnightβ€’8mo ago
suspend/sleep is always dicey on desktops/laptops for me and i tend to not use it. only device i got with working/reliable suspend is my deck and miyoo mini+ instead i use wake on lan for desktop htpcs
rfrink
rfrinkOPβ€’8mo ago
okay yeah my steam deck is flawless with it, I was just hoping to get that with my htpc, all good if I can't figure it out though, definitely just a nice to have
HikariKnight
HikariKnightβ€’8mo ago
wake on lan (if the htpc is connected with ethernet) would be the 2nd best thing, lets you turn it on from your phone πŸ™‚
Want results from more Discord servers?
Add your server