FlyGoat / RyzenAdj

Adjust power management settings for Ryzen APUs
GNU Lesser General Public License v3.0
1.71k stars 123 forks source link

Support for Vangogh - Steam Deck #196

Open brycesub opened 2 years ago

brycesub commented 2 years ago
(1)(deck@steamdeck ~)$ sudo ./ryzenadj  -i
CPU Family: Vangogh
SMU BIOS Interface Version: 2
Version: v0.10.0
request_table_ver_and_size is not supported on this family
Unable to init power metric table: -1, this does not affect adjustments because it is only needed for monitoring.
(255)(deck@steamdeck ~)$ sudo ./ryzenadj  --dump-table
request_table_ver_and_size is not supported on this family
Unable to init power metric table: -1, this does not affect adjustments because it is only needed for monitoring.

How can I help facilitate support for the Vangough line of mobile processors? Tweaking power management is of interest to the Steam Deck community.

Falcosc commented 2 years ago

Coreboot, Ryzen SMU and Zenpower projects don't support power metric table for Rembrand and Vangogh either. So it is unknown how to get the data because nobody knows which command does expose the dram adress and which command does refresh the data. Only HWinfo knows how to get the data, but they are closed source.

But interestingly https://github.com/sbski/Renoir-Mobile-Tuning does not exclude these generations and just execute the commands from the previous generation https://github.com/sbski/Renoir-Mobile-Tuning/blob/29c2fd04fa32b8643bad949f9c09c75cf9626c41/renoir_tuning_utility/renoir_tuning_utility/RMT.cs#L145-L152 Maybe have a look if this is able to collect the table values.

If The old commands are not working, we may could reverse engineer hwinfo or just watch which SMU commends get written into the registers while hwinfo is running.

agluszyk commented 2 years ago

@Falcosc do you think that such method is worth trying https://github.com/agluszyk/RyzenAdj/tree/steamdeck-gfxclk ?

Falcosc commented 2 years ago

I cannot verify this code without the hardware, but if your linked code works, then you can create a pull request

wzzt commented 2 years ago

I tried building the above with MSVC/Clang and running it on Windows 11 on the Steam Deck. The SMU always rejects set_max_gfxclk_freq outright, and while ryzenadj consistently reports success when setting the minimum frequency, it appears to have no effect on clock speed or gaming performance regardless of what value it's set to.