Skip to content

Native RyzenAdj STAPM continuous override for lower overhead

Notifications You must be signed in to change notification settings

JCBuck/RyzenAdjTimer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RyzenAdjTimer

Native RyzenAdj STAPM continuous override for lower overhead implemented in C

uses https://github.com/FlyGoat/RyzenAdj library

Ported powershell script here FlyGoat/RyzenAdj#145

additional modification for force resetting stapm_limit every loop for some AMD Laptop UEFIs that restricts it.

Tested on Thinkpad L15 Gen 1 w/ 4750u, L15 Gen 2 w/ 5850u, T14 G2 20XK0015US with 5650u. (balanced power profile with power slider at Best performance, Windows 10 22H2, Windows 11 22H2) Reaches up to manufacturer limited 48w for fast power limit Uses 12ms sleep interval to hit specified fast power limit exactly, but if a target power is desired that's less than fast power limit, can modulate sleep interval with fast at max, in order to hit a slightly higher average power than manufacturer restricted slow limit (this way it's less overhead and calls to set limits, in a way it's like PWM)

Parameter dump and info

ryzenadjtimer.exe -D 0 (4 is default log level, which will show when it resets, 0 disables logs, but errors are printed to stderr)

[Q]-Quit [Backspace]-Show vals in title [DEL]-Print vals [INS]-Print args
[ 0] (1:reset) (setfn:1) -a --stapm_normal_limit 100000 (0x186a0)
[ 1] (0:init)  (setfn:1) -b --fast_normal_limit  100000 (0x186a0)
[ 2] (0:init)  (setfn:1) -c --slow_normal_limit  100000 (0x186a0)
[ 3] (0:init)  (setfn:1) -d --slow_time_target   500 (0x1f4)
[ 4] (0:init)  (setfn:1) -e --stapm_time_target  500 (0x1f4)
[ 5] (0:init)  (setfn:1) -f --tctl_temp          100 (0x64)
[ 6] (0:init)  (setfn:1) -g --vrmmax_current     100000 (0x186a0)
[ 7] (0:init)  (setfn:0) -h --slow_reset_limit   32000 (0x7d00)
[ 8] (0:init)  (setfn:0) -i --stapm_reset_limit  20000 (0x4e20)
[ 9] (0:init)  (setfn:0) -D --debuglevel         0 (0x0)
[10] (0:init)  (setfn:0) -S --sleepms            12 (0xc)
[11] (0:init)  (setfn:0) -E --statusdelay        970 (0x3ca)
[12] (0:init)  (setfn:0) -T --dispstatus         0 (0x0)
[13] (0:init)  (setfn:0) -I --titlestatus        0 (0x0)
[14] (0:init)  (setfn:0) -H --hotkeys            1 (0x1)
[15] (0:init)  (setfn:0) -R --resetvalbitmask    1 (0x1)
Running ryzenadj

Defaults max out to 100 watts, max current, use at your own risk, and watch temps.

About

Native RyzenAdj STAPM continuous override for lower overhead

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages