Performance issues on bazzite-deck (htpc) with AMD RX 7600 GPU and Ryzen 5700X CPU
I installed the bazzite image you get when you select HTPC, AMD on the website (bazzite-deck) and I get atrocious performance issues in games. Everything runs at very low fps and is choppy, even stuff that should run flawlessly (tried a few older games at 720p, low settings etc). Running the regular desktop version of Bazzite on this system works fine, as does other distros, windows etc.
Initially I thought it might be the tdp limit issues (https://github.com/ublue-os/bazzite/issues/320), but I checked and the tdpfix service is running, permission is 644 as it should be and the power limit for the card is set correctly (130w).
If I turn on the performance overlay (see attached image) I see the GPU usage barely ever goes above 50%, and the frequency hovers around a much lower number that it should be at (1720mhz base clock, 2250 MHz 'game' clock) and the power was fluctuating between 20-50w so this does look like some kind of throttling behaviour. CPU and GPU temps are pretty low.
During the first boot setup of bazzite I was seeing a 'you have low battery' warning despite this being a desktop powered by wall power - is this maybe a power mode thing? Throttling because it thinks the system is running on battery?
27 Replies
Update: installed LACT and noticed that the 'Throttling' part of the OC page keeps switching between 'No' and Temperature(TEMP_HOTSPOT), despite the GPU sitting at 53c, and not going above ~65 under load.
I set the performance section to 'manual' and enabled only the highest frequency option for both memory and VRAM power states, this seems to have significantly improved performance - I don't get the same stuttering anymore and I get a consistent 60fps. The setting doesn't seem to actually do what it says though - the GPU still dynamically changes frequency and only hovers around 1200-1500 hz while running NFS: Hot Pursuit remastered. I'll try a more demanding game to try to work out if the card will actually run at full speed now.
Definitely still not right, getting lots of stuttering in some games and emulators and the gpu frequency is changing constantly but never maxes out
Update: installed LACT and noticed that the 'Throttling' part of the OC page keeps switching between 'No' and Temperature(TEMP_HOTSPOT), despite the GPU sitting at 53c, and not going above ~65 under load.this behavior would make me immediately slap windows on a spare disk and verify if its a problem there too because that could be a busted sensor as that is not normal behavior
I've run windows, and the desktop version of bazzite on this system and neither had the same problem - it seems to just be bazzite-deck
found this - comments seem to mostly think it's just a cosmetic issue but maybe there's some interaction with how bazzite-deck handles power management that doesn't show up on regular distros or something?: https://gitlab.freedesktop.org/drm/amd/-/issues/3251
GitLab
throttle_status
in gpu_metrics
for Navi31 always show TEMP_HOTS...throttle_status, indep_throttle_status for RX 7900 XTX (Sapphire NITRO+ RX 7900 XTX Vapor-X) available from gpu_metrics almost always shows TEMP_HOTSPOT, even when idling.
I'm not certain but I think the desktop was dropping to 30fps sometimes as well
For what it’s worth, I don’t have the performance issue but LACT has always misreported throttling on my 7900xtx like that (constantly swapping on and off, even at desktop idle) so that is a red herring imho
What’s your power profile/tuned setting?
it's on performance now, and apparently was the other day when I took the screenshot earlier in this thread (rocket ship in the taskbar) but I did notice it was on power saving yesterday night for some reason and I changed it back
Yeah that might be something to look into more, you can also replace what profile it uses for each of the three tiers (for example set them to all “performance” and then see if you get different results
I think the setting file is somewhere in /etc/tuned-ppd
But generally, I’ve never had issues rebasing between the deck and desktop images with my 7900, so it’s strange you’re seeing that
Does it happen when you’re on the KDE session on bazzite-deck, or only on game mode?
the issues seem to be intermittent - like I just booted a while ago and perf was garbage, switched to desktop mode, used browser for a bit, switched back to game mode, still garbage, switched back to desktop for a bit again, then switched back to game mode again and launched the same game and got a smooth frametime graph and consistent 60fps
Does it happen after a system suspend maybe? Also re: battery stuff there’s also some tuned battery settings too https://discord.com/channels/1072614816579063828/1087140957096517672/1306777554526670848
pretty sure it's both, was getting the same issues from desktop mode the other day but it's possible my memory is faulty lol - I'll reboot and test
Hm yeah if you’re worried about memory I’d do an overnight memtest run or something just to be sure
no I mean the memory in my brain lol
lol
ooh, yeah this is the current tuned battery config, I wonder if that warning I saw on first install about the (nonexistent, it's a desktop) battery being low means it's switching power profiles
I'll try modifying this - presumably setting battery_detection to false makes it never switch to the profile under [battery]?
Okay, switched default to balanced throughput-performance - typo, set battery_detection to false and commented out the battery section just to be safe, rebooted, tested - no change
Went back into that file and also changed all three profiles to throughput-performance - issues seem to be fixed!
I'm not totally confident that the problem is actually gone because I was having bursts of it working occasionally before too so will test for a bit but if it stays fixed I guess the issue was power profile weirdness after all - must have been switching to balanced/power-saver either without the taskbar icon reflecting it, or only during fullscreen apps and game mode
nice! hopefully it keeps working that way. the other thing you can do is force a gpu power mode in LACT by going to manual perf mod and then setting a power level mode
default behavior is to auto select a power level mode
obv the ideal situation will be that your card just detects the right mode for the right context automatically
but if we can isolate it down to something related to power profile selection either on the card or in tuned (there is some overlap between the two with regards to gpu power limits) then maybe we can figure out the root cause
also i'm not 100% sure what the behavior is for battery_detection=true, but if your system was incorrectly determining that you were on battery power it certainly seems likely that it would fall back to those tuned profiles, which may have some undesirable gpu mode settings
I was (am) having this issue too sometimes. Did you happen to find a solution?
I spoke too soon, it went back to stuttering again after a couple of reboots even though the power profile settings are still the same...
@Chris not really - messing around with LACT and power profile settings seems to have some effect but haven't fully fixed it yet. Are you running a 7600 too?
I'm going to try some of the stuff mentioned here later: https://gitlab.freedesktop.org/drm/amd/-/issues/1500#note_1854170
GitLab
power saving too agressive on RX 6800, causes stuttering with fps l...
Brief summary of the problem: The RX 6800 doesn't sustain GPU clock in a sufficient manner, causing Hitman 2 with DXVK...
I don't see the power level mode setting in LACT in porkloins screenshot
Are you sure you’ve got the right gpu selected? If you have a zen cpu with an integrated gpu there will be a drop down in the upper left corner to pick which gpu you are modifying
6600xt
no integrated gpu