Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 2.2 KB

README.md

File metadata and controls

38 lines (32 loc) · 2.2 KB

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.