Re-apply ryzen power limits for old models https://github.com/seerge/g-helper/issues/2355

This commit is contained in:
Serge
2024-04-01 14:46:36 +02:00
parent ed92dd236f
commit 6758bde975

View File

@@ -15,6 +15,7 @@ namespace GHelper.Mode
private int _cpuUV = 0;
private int _igpuUV = 0;
private bool _ryzenPower = false;
static System.Timers.Timer reapplyTimer = default!;
@@ -28,6 +29,7 @@ namespace GHelper.Mode
private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
SetCPUTemp(AppConfig.GetMode("cpu_temp"), false);
if (_ryzenPower) SetRyzenPower();
}
public void AutoPerformance(bool powerChanged = false)
@@ -222,6 +224,31 @@ namespace GHelper.Mode
settings.SetModeLabel(Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""));
}
public void SetRyzenPower(bool log = false)
{
if (!AppConfig.IsMode("auto_apply_power")) return;
int limit_total = AppConfig.GetMode("limit_total");
int limit_slow = AppConfig.GetMode("limit_slow", limit_total);
if (limit_total > AsusACPI.MaxTotal) return;
if (limit_total < AsusACPI.MinTotal) return;
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
if (log) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
if (log) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
if (log) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");
var fastResult = SendCommand.set_fast_limit((uint)limit_slow * 1000);
if (log) Logger.WriteLine($"FAST: {limit_slow} {fastResult}");
_ryzenPower = true;
}
public void SetPower(bool launchAsAdmin = false)
{
@@ -258,18 +285,7 @@ namespace GHelper.Mode
if (ProcessHelper.IsUserAdministrator())
{
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");
var fastResult = SendCommand.set_fast_limit((uint)limit_slow * 1000);
Logger.WriteLine($"FAST: {limit_slow} {fastResult}");
SetRyzenPower(true);
customPower = limit_total;
}
else if (launchAsAdmin)