diff --git a/app/ControlHelper.cs b/app/ControlHelper.cs index 1bf6f844..637fa56f 100644 --- a/app/ControlHelper.cs +++ b/app/ControlHelper.cs @@ -92,7 +92,7 @@ public static class ControlHelper } var chk = control as CheckBox; - if (chk != null && chk.Padding.Left > 5) + if (chk != null && chk.Padding.Right > 5) { chk.BackColor = RForm.buttonSecond; } diff --git a/app/Fans.cs b/app/Fans.cs index 6225ca0a..aab0ba12 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -119,7 +119,8 @@ namespace GHelper private void TrackGPU_MouseUp(object? sender, MouseEventArgs e) { - Program.settingsForm.SetGPUSettings(true); + Program.settingsForm.SetGPUPower(); + Program.settingsForm.SetGPUClocks(true); } public void InitGPU(bool readClocks = false) @@ -509,7 +510,14 @@ namespace GHelper trackGPUBoost.Value = ASUSWmi.MaxGPUBoost; trackGPUTemp.Value = ASUSWmi.MaxGPUTemp; - Program.settingsForm.SetGPUSettings(true); + Program.config.setConfigPerf("gpu_boost", trackGPUBoost.Value); + Program.config.setConfigPerf("gpu_temp", trackGPUTemp.Value); + Program.config.setConfigPerf("gpu_core", trackGPUCore.Value); + Program.config.setConfigPerf("gpu_memory", trackGPUMemory.Value); + VisualiseGPUSettings(); + + Program.settingsForm.SetGPUClocks(true); + Program.settingsForm.SetGPUPower(); } private void ChartCPU_MouseUp(object? sender, MouseEventArgs e) diff --git a/app/Gpu/NvidiaGpuControl.cs b/app/Gpu/NvidiaGpuControl.cs index 6629a5de..e2602ebb 100644 --- a/app/Gpu/NvidiaGpuControl.cs +++ b/app/Gpu/NvidiaGpuControl.cs @@ -95,8 +95,8 @@ public class NvidiaGpuControl : IGpuControl try { + Logger.WriteLine($"SET GPU Clock : {core}, {memory}"); GPUApi.SetPerformanceStates20(internalGpu.Handle, overclock); - Logger.WriteLine($"SET GPU Clock offsets : {core}, {memory}"); } catch (Exception ex) { diff --git a/app/Settings.cs b/app/Settings.cs index 9577bb3f..9569be6e 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -1045,27 +1045,14 @@ namespace GHelper } - public void SetGPUSettings(bool launchAsAdmin = true) - { - int gpu_boost = Program.config.getConfigPerf("gpu_boost"); - int gpu_temp = Program.config.getConfigPerf("gpu_temp"); + public void SetGPUClocks(bool launchAsAdmin = true) + { int gpu_core = Program.config.getConfigPerf("gpu_core"); int gpu_memory = Program.config.getConfigPerf("gpu_memory"); - if (gpu_boost < ASUSWmi.MinGPUBoost || gpu_boost > ASUSWmi.MaxGPUBoost ) return; - if (gpu_temp < ASUSWmi.MinGPUTemp || gpu_temp > ASUSWmi.MaxGPUTemp) return; - - if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC0) >= 0) - { - Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC0, gpu_boost, "PowerLimit C0"); - } - - if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC2) >= 0) - { - Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC2, gpu_temp, "PowerLimit C2"); - } + if (gpu_core == -1 && gpu_memory == -1) return; if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false; @@ -1082,7 +1069,27 @@ namespace GHelper Logger.WriteLine(ex.ToString()); } } + } + public void SetGPUPower() + { + + int gpu_boost = Program.config.getConfigPerf("gpu_boost"); + int gpu_temp = Program.config.getConfigPerf("gpu_temp"); + + + if (gpu_boost < ASUSWmi.MinGPUBoost || gpu_boost > ASUSWmi.MaxGPUBoost ) return; + if (gpu_temp < ASUSWmi.MinGPUTemp || gpu_temp > ASUSWmi.MaxGPUTemp) return; + + if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC0) >= 0) + { + Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC0, gpu_boost, "PowerLimit C0"); + } + + if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC2) >= 0) + { + Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC2, gpu_temp, "PowerLimit C2"); + } } @@ -1159,14 +1166,14 @@ namespace GHelper timer.Stop(); timer.Dispose(); if (applyPower) SetPower(); - SetGPUSettings(); + SetGPUPower(); }; timer.Start(); } else { if (applyPower) SetPower(); - SetGPUSettings(); + SetGPUPower(); } } @@ -1221,6 +1228,8 @@ namespace GHelper } } + SetGPUClocks(); + AutoFans(); AutoPower(1000);