How to use CoreCtrl to undervolt GPU

I’m running Bazzite 39 - Steam Deck & HTPC Edition
on a Ryzen 5700G with a RX 6600. It is a fresh install.

I finally manage to get CoreCtrl 1.3.8 running but in the "Performance ode: Advanced " I can only change

  • Power limit (W)
  • Power profile
  • GPU (x MHz)
  • Memory (x MHz)

Hi, you will need to add a kernel argument to enable more advanced features in the driver.
You can get the kernel argument to enable the default supported features for your card by using this command in the terminal

printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask)))"

if you want to get the kernel argument to enable all supported features for your card, run this instead (may cause issues on some cards)

printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask) | 0x4000))"

and then add that kernel argument to your system using (NOTE: replace amdgpu.ppfeaturemask= with the output from the command above)
rpm-ostree kargs --append-if-missing=amdgpu.ppfeaturemask=

to do it all in one go, using the cards default supported feature mask, you can do (if you're using the bash shell which is the default)
rpm-ostree kargs --append-if-missing=$(printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask)))")

once the kernel argument is added, reboot your system and corectrl should now have access to more features, undervolting potentially being one of them if the card supports it.
2 Likes

Thank you very much.