-
-
Notifications
You must be signed in to change notification settings - Fork 29
Adding Curve Optimizer with RyzenAdj #84
Comments
If this were added, I'd probably want to add a UI to set each clock in the curve manually along with a button or something that does an automatic optimization of all clocks. From discussions I've seen, undervolting and this sort of thing usually only results in a few % improvement, so I'm weary that it's not worth the effort. Worth noting: PowerTools does use RyzenAdj, but not for the Steam Deck. |
Afaik you can't edit manually the full curve, you just pass a value, so just a slider would work, as there is already in your UI. Next upgrade would be making it available per core, but I think it's overkill for the SD, as these should easily max out a -30 slider (most official CO optimisation apps/bios use -30 as max value). |
I looked into this a bit more, and it seems like set_coall/per aren't supported with Van Gogh -- they'll just return an unsupported error. I'm not against adding it for other systems, but since I've heard absolutely nothing about using PowerTools on other devices despite support existing, I have no interest in working on this change. In case someone else wants to add this, here are some things to consider:
|
Thanks for looking into that. What is sure is that it works in @JamesCJ60 ´s UXTU in Windows on my Dual boot steamdeck. You’re also right that it could introduce instability, even if it’s somewhat (much) safer that the EFI undervolt considering how Smokeless UMAF gives access to real dangerous settings. edit : sorry for the wrong closed / reopen issue click… my bad… big fingers on small screen |
As for Van Gogh not being supported, I've tested JamesCJ60's fork of RyzenAdj which adds Curve Optimizer support for this APU and I can confirm that it works. It's just a matter of setting CO offset the same way as on Rembrandt. |
Providing no issues are found, my changes should be merged into RyzenAdj soon, but for the time being, just use my fork for RyzenAdj. The calculation below will be from my code, so alter them to whatever language is being used here. To set a per-core offset (--set_coper=), you use a calculation like so: (Core << 20) | (Magnitude & 0xFFFF) So if you wanted to set -25 on only the first core, you would do (0 << 20) | (-25 & 0xFFFF) To set all core offsets (--set_coall=): Some APUs will be limited to +/-30, and some won't have limits on the max/minimum Curve Optimiser offset. You will also need to reapply the Curve Optimiser offsets when unplugging and plugging from/into the wall. |
Came across a nice way to do it specifically for Steam Deck: https://docs.kernel.org/5.19/gpu/amdgpu/thermal.html#pp-od-clk-voltage This is nice because you can set each voltage individually and it uses |
What you have found only works with the iGPU on VanGogh and does not work like Curve Optimiser. What’s been requested here is specifically for the CPU. |
Yes sorry I should've said "nice way to do [some of] it specifically for Steam Deck". I got a bit too excited because it was more like what I wanted than what anything else could do. |
change is already merged in RyzenAdj |
Please confirm
Describe what you'd like to be able to do
Curve Optimizer works great on my Deck in Windows.
As it looks like PowerTools is using RyzenAdj too, is there a possibility to add the --set-coall option (there's also options for iGPU curve optimizer with --set-cogfx)
Would help a lot with performance and thermals, and works better than undervolting with Smokeless EFI
Describe alternatives you've considered
Was looking at compiling Ryzenadj myself, but checking if Powertools is using it, I found out it was, so why not asking ?
Anything else?
No response
The text was updated successfully, but these errors were encountered: