Compare commits

...

6 Commits

Author SHA1 Message Date
Serge
02e700c03c Cleanup 2024-02-29 17:03:48 +01:00
Serge
35977d007e GPU Power UI Tweaks 2024-02-29 16:07:11 +01:00
Serge
3b9f8de0ab GPU Power tweaks 2024-02-29 15:54:09 +01:00
Serge
1e3a16ae45 Merge branch 'main' into gpu_tgp 2024-02-28 23:40:57 +01:00
Serge
a520c438da Version bump 2024-02-28 17:15:15 +01:00
Serge
6b45795888 GPU TGP setting for supported models 2024-02-28 15:43:16 +01:00
8 changed files with 147 additions and 39 deletions

View File

@@ -105,6 +105,9 @@ public class AsusACPI
public const uint CORES_CPU = 0x001200D2; // Intel E-core and P-core configuration in a format 0x0[E]0[P] public const uint CORES_CPU = 0x001200D2; // Intel E-core and P-core configuration in a format 0x0[E]0[P]
public const uint CORES_MAX = 0x001200D3; // Maximum Intel E-core and P-core availability public const uint CORES_MAX = 0x001200D3; // Maximum Intel E-core and P-core availability
public const uint GPU_BASE = 0x00120099; // Base part GPU TGP
public const uint GPU_POWER = 0x00120098; // Additonal part of GPU TGP
public const int APU_MEM = 0x000600C1; public const int APU_MEM = 0x000600C1;
public const int TUF_KB_BRIGHTNESS = 0x00050021; public const int TUF_KB_BRIGHTNESS = 0x00050021;
@@ -150,6 +153,9 @@ public class AsusACPI
public const int MinGPUBoost = 5; public const int MinGPUBoost = 5;
public static int MaxGPUBoost = 25; public static int MaxGPUBoost = 25;
public static int MinGPUPower = 0;
public static int MaxGPUPower = 50;
public const int MinGPUTemp = 75; public const int MinGPUTemp = 75;
public const int MaxGPUTemp = 87; public const int MaxGPUTemp = 87;
@@ -285,6 +291,7 @@ public class AsusACPI
if (AppConfig.IsIntelHX()) if (AppConfig.IsIntelHX())
{ {
MaxTotal = 175; MaxTotal = 175;
MaxGPUPower = 70;
} }
if (AppConfig.DynamicBoost5()) if (AppConfig.DynamicBoost5())

View File

@@ -42,6 +42,12 @@ namespace GHelper.Display
[DllImport("gdi32")] [DllImport("gdi32")]
internal static extern bool GetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp); internal static extern bool GetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp);
[DllImport("gdi32", CharSet = CharSet.Unicode)]
internal static extern bool SetICMProfileW(IntPtr dcHandle, string lpFileName);
[DllImport("gdi32", CharSet = CharSet.Unicode)]
internal static extern bool SetICMMode(IntPtr dcHandle, int mode);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DEVMODE public struct DEVMODE
{ {

View File

@@ -398,17 +398,19 @@ namespace GHelper
InitServices(); InitServices();
InitHibernate(); InitHibernate();
//InitACPITesting(); InitACPITesting();
} }
private void InitACPITesting() private void InitACPITesting()
{ {
if (!AppConfig.Is("debug")) return;
pictureScan.Visible = true; pictureScan.Visible = true;
panelACPI.Visible = true; panelACPI.Visible = true;
textACPICommand.Text = "120075"; textACPICommand.Text = "120098";
textACPIParam.Text = "1"; textACPIParam.Text = "25";
buttonACPISend.Click += ButtonACPISend_Click; buttonACPISend.Click += ButtonACPISend_Click;
pictureScan.Click += PictureScan_Click; pictureScan.Click += PictureScan_Click;

73
app/Fans.Designer.cs generated
View File

@@ -119,6 +119,10 @@ namespace GHelper
picturePowerMode = new PictureBox(); picturePowerMode = new PictureBox();
labelPowerModeTitle = new Label(); labelPowerModeTitle = new Label();
panelGPU = new Panel(); panelGPU = new Panel();
panelGPUPower = new Panel();
labelGPUPower = new Label();
labelGPUPowerTitle = new Label();
trackGPUPower = new TrackBar();
panelGPUTemp = new Panel(); panelGPUTemp = new Panel();
labelGPUTemp = new Label(); labelGPUTemp = new Label();
labelGPUTempTitle = new Label(); labelGPUTempTitle = new Label();
@@ -190,6 +194,8 @@ namespace GHelper
panelPowerModeTItle.SuspendLayout(); panelPowerModeTItle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit(); ((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
panelGPU.SuspendLayout(); panelGPU.SuspendLayout();
panelGPUPower.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
panelGPUTemp.SuspendLayout(); panelGPUTemp.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit(); ((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
panelGPUBoost.SuspendLayout(); panelGPUBoost.SuspendLayout();
@@ -533,7 +539,7 @@ namespace GHelper
panelAdvanced.Controls.Add(panelTitleTemp); panelAdvanced.Controls.Add(panelTitleTemp);
panelAdvanced.Controls.Add(panelDownload); panelAdvanced.Controls.Add(panelDownload);
panelAdvanced.Dock = DockStyle.Top; panelAdvanced.Dock = DockStyle.Top;
panelAdvanced.Location = new Point(10, 1644); panelAdvanced.Location = new Point(10, 1768);
panelAdvanced.Name = "panelAdvanced"; panelAdvanced.Name = "panelAdvanced";
panelAdvanced.Size = new Size(520, 992); panelAdvanced.Size = new Size(520, 992);
panelAdvanced.TabIndex = 14; panelAdvanced.TabIndex = 14;
@@ -864,7 +870,7 @@ namespace GHelper
panelPower.Controls.Add(panelPowerMode); panelPower.Controls.Add(panelPowerMode);
panelPower.Controls.Add(panelPowerModeTItle); panelPower.Controls.Add(panelPowerModeTItle);
panelPower.Dock = DockStyle.Top; panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(10, 764); panelPower.Location = new Point(10, 888);
panelPower.Margin = new Padding(4); panelPower.Margin = new Padding(4);
panelPower.Name = "panelPower"; panelPower.Name = "panelPower";
panelPower.Size = new Size(520, 880); panelPower.Size = new Size(520, 880);
@@ -1237,6 +1243,7 @@ namespace GHelper
panelGPU.AutoSize = true; panelGPU.AutoSize = true;
panelGPU.Controls.Add(panelGPUTemp); panelGPU.Controls.Add(panelGPUTemp);
panelGPU.Controls.Add(panelGPUBoost); panelGPU.Controls.Add(panelGPUBoost);
panelGPU.Controls.Add(panelGPUPower);
panelGPU.Controls.Add(panelGPUMemory); panelGPU.Controls.Add(panelGPUMemory);
panelGPU.Controls.Add(panelGPUCore); panelGPU.Controls.Add(panelGPUCore);
panelGPU.Controls.Add(panelGPUClockLimit); panelGPU.Controls.Add(panelGPUClockLimit);
@@ -1246,10 +1253,59 @@ namespace GHelper
panelGPU.Margin = new Padding(4); panelGPU.Margin = new Padding(4);
panelGPU.Name = "panelGPU"; panelGPU.Name = "panelGPU";
panelGPU.Padding = new Padding(0, 0, 0, 18); panelGPU.Padding = new Padding(0, 0, 0, 18);
panelGPU.Size = new Size(520, 698); panelGPU.Size = new Size(520, 822);
panelGPU.TabIndex = 44; panelGPU.TabIndex = 44;
panelGPU.Visible = false; panelGPU.Visible = false;
// //
// panelGPUPower
//
panelGPUPower.AutoSize = true;
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGPUPower.Controls.Add(labelGPUPower);
panelGPUPower.Controls.Add(labelGPUPowerTitle);
panelGPUPower.Controls.Add(trackGPUPower);
panelGPUPower.Dock = DockStyle.Top;
panelGPUPower.Location = new Point(0, 432);
panelGPUPower.Margin = new Padding(4);
panelGPUPower.MaximumSize = new Size(0, 124);
panelGPUPower.Name = "panelGPUPower";
panelGPUPower.Size = new Size(520, 124);
panelGPUPower.TabIndex = 49;
//
// labelGPUPower
//
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPUPower.Location = new Point(374, 14);
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
labelGPUPower.Name = "labelGPUPower";
labelGPUPower.Size = new Size(124, 32);
labelGPUPower.TabIndex = 44;
labelGPUPower.Text = "105W";
labelGPUPower.TextAlign = ContentAlignment.TopRight;
//
// labelGPUPowerTitle
//
labelGPUPowerTitle.AutoSize = true;
labelGPUPowerTitle.Location = new Point(10, 14);
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
labelGPUPowerTitle.Size = new Size(130, 32);
labelGPUPowerTitle.TabIndex = 43;
labelGPUPowerTitle.Text = "GPU Power";
//
// trackGPUPower
//
trackGPUPower.Location = new Point(6, 48);
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
trackGPUPower.Maximum = 25;
trackGPUPower.Minimum = 5;
trackGPUPower.Name = "trackGPUPower";
trackGPUPower.Size = new Size(496, 90);
trackGPUPower.TabIndex = 42;
trackGPUPower.TickFrequency = 5;
trackGPUPower.TickStyle = TickStyle.TopLeft;
trackGPUPower.Value = 25;
//
// panelGPUTemp // panelGPUTemp
// //
panelGPUTemp.AutoSize = true; panelGPUTemp.AutoSize = true;
@@ -1258,7 +1314,7 @@ namespace GHelper
panelGPUTemp.Controls.Add(labelGPUTempTitle); panelGPUTemp.Controls.Add(labelGPUTempTitle);
panelGPUTemp.Controls.Add(trackGPUTemp); panelGPUTemp.Controls.Add(trackGPUTemp);
panelGPUTemp.Dock = DockStyle.Top; panelGPUTemp.Dock = DockStyle.Top;
panelGPUTemp.Location = new Point(0, 556); panelGPUTemp.Location = new Point(0, 680);
panelGPUTemp.Margin = new Padding(4); panelGPUTemp.Margin = new Padding(4);
panelGPUTemp.MaximumSize = new Size(0, 124); panelGPUTemp.MaximumSize = new Size(0, 124);
panelGPUTemp.Name = "panelGPUTemp"; panelGPUTemp.Name = "panelGPUTemp";
@@ -1307,7 +1363,7 @@ namespace GHelper
panelGPUBoost.Controls.Add(labelGPUBoostTitle); panelGPUBoost.Controls.Add(labelGPUBoostTitle);
panelGPUBoost.Controls.Add(trackGPUBoost); panelGPUBoost.Controls.Add(trackGPUBoost);
panelGPUBoost.Dock = DockStyle.Top; panelGPUBoost.Dock = DockStyle.Top;
panelGPUBoost.Location = new Point(0, 432); panelGPUBoost.Location = new Point(0, 556);
panelGPUBoost.Margin = new Padding(4); panelGPUBoost.Margin = new Padding(4);
panelGPUBoost.MaximumSize = new Size(0, 124); panelGPUBoost.MaximumSize = new Size(0, 124);
panelGPUBoost.Name = "panelGPUBoost"; panelGPUBoost.Name = "panelGPUBoost";
@@ -1700,6 +1756,9 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit(); ((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
panelGPU.ResumeLayout(false); panelGPU.ResumeLayout(false);
panelGPU.PerformLayout(); panelGPU.PerformLayout();
panelGPUPower.ResumeLayout(false);
panelGPUPower.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
panelGPUTemp.ResumeLayout(false); panelGPUTemp.ResumeLayout(false);
panelGPUTemp.PerformLayout(); panelGPUTemp.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit(); ((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit();
@@ -1833,5 +1892,9 @@ namespace GHelper
private TrackBar trackSlow; private TrackBar trackSlow;
private Panel panelDownload; private Panel panelDownload;
private RButton buttonDownload; private RButton buttonDownload;
private Panel panelGPUPower;
private Label labelGPUPower;
private Label labelGPUPowerTitle;
private TrackBar trackGPUPower;
} }
} }

View File

@@ -31,6 +31,8 @@ namespace GHelper
FanSensorControl fanSensorControl; FanSensorControl fanSensorControl;
static int gpuPowerBase = 0;
public Fans() public Fans()
{ {
@@ -144,17 +146,22 @@ namespace GHelper
trackGPUTemp.Minimum = AsusACPI.MinGPUTemp; trackGPUTemp.Minimum = AsusACPI.MinGPUTemp;
trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp; trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp;
trackGPUPower.Minimum = AsusACPI.MinGPUPower;
trackGPUPower.Maximum = AsusACPI.MaxGPUPower;
trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll; trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll;
trackGPUCore.Scroll += trackGPU_Scroll; trackGPUCore.Scroll += trackGPU_Scroll;
trackGPUMemory.Scroll += trackGPU_Scroll; trackGPUMemory.Scroll += trackGPU_Scroll;
trackGPUBoost.Scroll += trackGPUPower_Scroll; trackGPUBoost.Scroll += trackGPUPower_Scroll;
trackGPUTemp.Scroll += trackGPUPower_Scroll; trackGPUTemp.Scroll += trackGPUPower_Scroll;
trackGPUPower.Scroll += trackGPUPower_Scroll;
trackGPUCore.MouseUp += TrackGPU_MouseUp; trackGPUCore.MouseUp += TrackGPU_MouseUp;
trackGPUMemory.MouseUp += TrackGPU_MouseUp; trackGPUMemory.MouseUp += TrackGPU_MouseUp;
trackGPUBoost.MouseUp += TrackGPU_MouseUp; trackGPUBoost.MouseUp += TrackGPU_MouseUp;
trackGPUTemp.MouseUp += TrackGPU_MouseUp; trackGPUTemp.MouseUp += TrackGPU_MouseUp;
trackGPUPower.MouseUp += TrackGPU_MouseUp;
trackGPUClockLimit.MouseUp += TrackGPU_MouseUp; trackGPUClockLimit.MouseUp += TrackGPU_MouseUp;
@@ -541,8 +548,12 @@ namespace GHelper
{ {
gpuVisible = buttonGPU.Visible = true; gpuVisible = buttonGPU.Visible = true;
gpuPowerBase = Program.acpi.DeviceGet(AsusACPI.GPU_BASE);
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
int gpu_boost = AppConfig.GetMode("gpu_boost"); int gpu_boost = AppConfig.GetMode("gpu_boost");
int gpu_temp = AppConfig.GetMode("gpu_temp"); int gpu_temp = AppConfig.GetMode("gpu_temp");
int gpu_power = AppConfig.GetMode("gpu_power");
int core = AppConfig.GetMode("gpu_core"); int core = AppConfig.GetMode("gpu_core");
int memory = AppConfig.GetMode("gpu_memory"); int memory = AppConfig.GetMode("gpu_memory");
@@ -550,32 +561,35 @@ namespace GHelper
if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost; if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost;
if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp; if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp;
if (gpu_power < 0) gpu_power = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
if (core == -1) core = 0; if (core == -1) core = 0;
if (memory == -1) memory = 0; if (memory == -1) memory = 0;
if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit; if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit;
if (nvControl.GetClocks(out int current_core, out int current_memory)) if (nvControl is not null)
{ {
core = current_core; if (nvControl.GetClocks(out int current_core, out int current_memory))
memory = current_memory; {
core = current_core;
memory = current_memory;
}
int _clockLimit = nvControl.GetMaxGPUCLock();
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
else if (_clockLimit > 0) clock_limit = _clockLimit;
try
{
labelGPU.Text = nvControl.FullName;
}
catch
{
}
} }
int _clockLimit = nvControl.GetMaxGPUCLock();
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
else if (_clockLimit > 0) clock_limit = _clockLimit;
try
{
labelGPU.Text = nvControl.FullName;
}
catch
{
}
//}
trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit); trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit);
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset); trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
@@ -584,9 +598,13 @@ namespace GHelper
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost); trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost);
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp); trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp);
trackGPUPower.Value = Math.Max(Math.Min(gpu_power, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0); panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0);
panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0); panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0);
panelGPUPower.Visible = gpuPowerBase > 0 && gpuPowerVar >= 0;
VisualiseGPUSettings(); VisualiseGPUSettings();
} }
@@ -610,6 +628,9 @@ namespace GHelper
labelGPUClockLimit.Text = "Default"; labelGPUClockLimit.Text = "Default";
else else
labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz"; labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz";
labelGPUPower.Text = (gpuPowerBase + trackGPUPower.Value) + "W";
} }
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e) private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
@@ -640,6 +661,7 @@ namespace GHelper
{ {
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.SetMode("gpu_power", trackGPUPower.Value);
VisualiseGPUSettings(); VisualiseGPUSettings();
} }
@@ -1089,19 +1111,24 @@ namespace GHelper
if (gpuVisible) if (gpuVisible)
{ {
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit; trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
trackGPUCore.Value = 0; trackGPUCore.Value = 0;
trackGPUMemory.Value = 0; trackGPUMemory.Value = 0;
trackGPUBoost.Value = AsusACPI.MaxGPUBoost; trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
trackGPUTemp.Value = AsusACPI.MaxGPUTemp; trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
trackGPUPower.Value = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
AppConfig.SetMode("gpu_clock_limit", trackGPUClockLimit.Value);
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.SetMode("gpu_core", trackGPUCore.Value); AppConfig.RemoveMode("gpu_power");
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
AppConfig.RemoveMode("gpu_clock_limit");
AppConfig.RemoveMode("gpu_core");
AppConfig.RemoveMode("gpu_memory");
VisualiseGPUSettings(); VisualiseGPUSettings();
modeControl.SetGPUClocks(true); modeControl.SetGPUClocks(true);

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly> <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.155</AssemblyVersion> <AssemblyVersion>0.156</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -346,18 +346,20 @@ namespace GHelper.Mode
int gpu_boost = AppConfig.GetMode("gpu_boost"); int gpu_boost = AppConfig.GetMode("gpu_boost");
int gpu_temp = AppConfig.GetMode("gpu_temp"); int gpu_temp = AppConfig.GetMode("gpu_temp");
int gpu_power = AppConfig.GetMode("gpu_power");
int boostResult = -1; int boostResult = -1;
if (gpu_boost < AsusACPI.MinGPUBoost || gpu_boost > AsusACPI.MaxGPUBoost) return; if (gpu_power >= AsusACPI.MinGPUPower && gpu_power <= AsusACPI.MaxGPUPower && Program.acpi.DeviceGet(AsusACPI.GPU_POWER) >= 0)
if (gpu_temp < AsusACPI.MinGPUTemp || gpu_temp > AsusACPI.MaxGPUTemp) return; Program.acpi.DeviceSet(AsusACPI.GPU_POWER, gpu_power, "PowerLimit TGP (GPU VAR)");
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0) if (gpu_boost >= AsusACPI.MinGPUBoost && gpu_boost <= AsusACPI.MaxGPUBoost && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0"); boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0 (GPU BOOST)");
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0) if (gpu_temp >= AsusACPI.MinGPUTemp && gpu_temp <= AsusACPI.MaxGPUTemp && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2"); Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2 (GPU TEMP)");
// Fallback
if (boostResult == 0) if (boostResult == 0)
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0"); Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");

View File

@@ -83,13 +83,12 @@ namespace GHelper
InitializeComponent(); InitializeComponent();
InitTheme(true); InitTheme(true);
LoadUpdates(true);
//buttonRefresh.Visible = false; //buttonRefresh.Visible = false;
buttonRefresh.Click += ButtonRefresh_Click; buttonRefresh.Click += ButtonRefresh_Click;
Shown += Updates_Shown; Shown += Updates_Shown;
} }
private void ButtonRefresh_Click(object? sender, EventArgs e) private void ButtonRefresh_Click(object? sender, EventArgs e)
{ {
LoadUpdates(); LoadUpdates();
@@ -100,7 +99,9 @@ namespace GHelper
Height = Program.settingsForm.Height; Height = Program.settingsForm.Height;
Top = Program.settingsForm.Top; Top = Program.settingsForm.Top;
Left = Program.settingsForm.Left - Width - 5; Left = Program.settingsForm.Left - Width - 5;
LoadUpdates(true);
} }
private Dictionary<string, string> GetDeviceVersions() private Dictionary<string, string> GetDeviceVersions()
{ {
using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver")) using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver"))