I am using a AMD RX 7800 XT and noticed that my idle power consumption has went up recently from ~5-10W to ~30W. After some investigation I found out it was caused by the change to the default power profiles from BOOTUP_DEFAULT
to 3D_FULLSCREEN
in 6.13. When in 3D_FULLSCREEN
profile, the GPU memory clock won’t transition to the lowest clock speed and consuming extra ~20W (!!) of power.
To fix this, I have to manually change the power profile using following commands (as root):
echo 'manual' > /sys/class/drm/card1/device/power_dpm_force_performance_level
# check the available power profiles to get the index
cat /sys/class/drm/card1/device/pp_power_profile_mode
# normally 0 = BOOTUP_DEFAULT
echo 0 > /sys/class/drm/card1/device/pp_power_profile_mode
(you may need to change card1
to card0
depends on your system)
Note that the configuration is not persisted across reboot and you may encounter shuttering during gaming with BOOTUP_DEFAULT
.
I recommend to use tools like LACT to automatically apply the power profile on startup and also automatically switch the profile to 3D_FULLSCREEN
when running games.
Edit: you should check you current GPU idle power consumption first (with nvtop
or lm_sensors
) before applying the change, the issue may not affect all AMD GPU
Can you tell us which distro and display config this is with?
I’m also in 3D_FULLSCREEN on NV21XT but my idle mclk is 96 MHz. TGP (not to be confused with TBP which is only communicated on RDNA 3 and up) is 6 watts at idle with my browsers open. GNOME 47 + Wayland, 2560 x 1440 @ 180Hz + 1920 x 1080 @ 60Hz, VRR enabled on both displays. This is with Fedora 41, kernel 6.13.6-200.fc41.x86_64
For context, the GPU index (0,1,2 etc) will depend on the number of video adapters you have in the system. If you have a CPU with integrated graphics, there’s a chance this will be registered as 0000 whereas the dGPU will be 0001.
Interesting, maybe this issue only happens for RDNA3?
I’m also using F41 with same kernel but with KDE. Display is 2560x1440 @ 120Hz. On
3D_FULLSCREEN
, mypp_dpm_mclk
is on 772Mhz most of the time with some occasional 456Mhz, but never drop to 96Mhz. It will only drop to 96Mhz if I change toBOOUP_DEFAULT
(orPOWER_SAVING
).
So I’m still on kernel 6.8, and my Vega 56 is running at 20-30W while posting this and watching Youtube. Not sure if that’s normal for that older card, or if I’ve been wasting energy for a really long time.
video playback will likely kick the asic out of idle. What’s your power use at true desktop idle?
Generally speaking, vega 10 (56, 64) and 20 (radeon vii) are able to achieve decently low desktop idle with varied display configs due to the memory technology they employ.
I killed Firefox and waited a while, and now I’m seeing 17-19W.
Hoły hell thank you, my 7900xtx was doing this and I hadn’t noticed
I’ve notices the same (also 7800 XT with the latest stable kernel) and have used CoreCtrl to manually set the powersave profile. Before I thought this was somehow only happening on my machine, but now I think this is a bug…
Thank you for your quick guide and explanations. I currently dont own an AMD GPU though I plan to acquire one if it’s worth it. So this may be useful.
How did you manage to get the power consumption on in idle mode ?
You can use
nvtop
orlm_sensors
to read the GPU power (PPT)Thank you, I’m gonna try it when I’m back home. I hope I don’t see something wrong as I’m on Linux since a year or so :) Thanks again