From e58a396cbdf5763a3e093ba9112cf818cb884131 Mon Sep 17 00:00:00 2001
From: Serge <5920850+seerge@users.noreply.github.com>
Date: Thu, 22 Jun 2023 15:53:35 +0200
Subject: [PATCH] CPU power limits for old devices
---
app/AsusACPI.cs | 1 +
app/Fans.Designer.cs | 249 +++++++++++++++--------------
app/Fans.cs | 7 +-
app/GHelper.csproj | 2 +-
app/Program.cs | 4 +
app/Properties/Strings.Designer.cs | 11 +-
app/Properties/Strings.es.resx | 2 +-
app/Properties/Strings.resx | 3 +
app/Ryzen/RyzenSmu.cs | 8 +-
app/Ryzen/Undervolter.cs | 7 +-
app/Settings.cs | 19 ++-
app/Updates.cs | 6 +-
12 files changed, 180 insertions(+), 139 deletions(-)
diff --git a/app/AsusACPI.cs b/app/AsusACPI.cs
index e029452f..9c1d7aaf 100644
--- a/app/AsusACPI.cs
+++ b/app/AsusACPI.cs
@@ -427,6 +427,7 @@ public class AsusACPI
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
}
+
public void ScanRange()
{
int value;
diff --git a/app/Fans.Designer.cs b/app/Fans.Designer.cs
index 512228c6..107095d9 100644
--- a/app/Fans.Designer.cs
+++ b/app/Fans.Designer.cs
@@ -31,14 +31,14 @@ namespace GHelper
///
private void InitializeComponent()
{
- ChartArea chartArea5 = new ChartArea();
- Title title5 = new Title();
- ChartArea chartArea6 = new ChartArea();
- Title title6 = new Title();
- ChartArea chartArea7 = new ChartArea();
- Title title7 = new Title();
- ChartArea chartArea8 = new ChartArea();
- Title title8 = new Title();
+ ChartArea chartArea1 = new ChartArea();
+ Title title1 = new Title();
+ ChartArea chartArea2 = new ChartArea();
+ Title title2 = new Title();
+ ChartArea chartArea3 = new ChartArea();
+ Title title3 = new Title();
+ ChartArea chartArea4 = new ChartArea();
+ Title title4 = new Title();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
panelFans = new Panel();
labelTip = new Label();
@@ -61,13 +61,6 @@ namespace GHelper
comboBoost = new RComboBox();
panelSliders = new Panel();
panelAdvanced = new Panel();
- panelTemperature = new Panel();
- labelTemp = new Label();
- labelLeftTemp = new Label();
- trackTemp = new TrackBar();
- panelTitleTemp = new Panel();
- pictureTemp = new PictureBox();
- labelTempLimit = new Label();
panelAdvancedApply = new Panel();
checkApplyUV = new RCheckBox();
buttonApplyAdvanced = new RButton();
@@ -83,6 +76,13 @@ namespace GHelper
panelTitleAdvanced = new Panel();
pictureUV = new PictureBox();
labelTitleUV = new Label();
+ panelTemperature = new Panel();
+ labelTemp = new Label();
+ labelLeftTemp = new Label();
+ trackTemp = new TrackBar();
+ panelTitleTemp = new Panel();
+ pictureTemp = new PictureBox();
+ labelTempLimit = new Label();
panelPower = new Panel();
panelApplyPower = new Panel();
checkApplyPower = new RCheckBox();
@@ -141,10 +141,6 @@ namespace GHelper
panelApplyFans.SuspendLayout();
panelSliders.SuspendLayout();
panelAdvanced.SuspendLayout();
- panelTemperature.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
- panelTitleTemp.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
panelAdvancedApply.SuspendLayout();
panelUViGPU.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackUViGPU).BeginInit();
@@ -152,6 +148,10 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)trackUV).BeginInit();
panelTitleAdvanced.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureUV).BeginInit();
+ panelTemperature.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
+ panelTitleTemp.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
panelPower.SuspendLayout();
panelApplyPower.SuspendLayout();
panelB0.SuspendLayout();
@@ -234,8 +234,8 @@ namespace GHelper
//
// chartGPU
//
- chartArea5.Name = "ChartArea1";
- chartGPU.ChartAreas.Add(chartArea5);
+ chartArea1.Name = "ChartArea1";
+ chartGPU.ChartAreas.Add(chartArea1);
chartGPU.Dock = DockStyle.Fill;
chartGPU.Location = new Point(12, 467);
chartGPU.Margin = new Padding(2, 10, 2, 10);
@@ -243,13 +243,13 @@ namespace GHelper
chartGPU.Size = new Size(782, 437);
chartGPU.TabIndex = 17;
chartGPU.Text = "chartGPU";
- title5.Name = "Title1";
- chartGPU.Titles.Add(title5);
+ title1.Name = "Title1";
+ chartGPU.Titles.Add(title1);
//
// chartCPU
//
- chartArea6.Name = "ChartArea1";
- chartCPU.ChartAreas.Add(chartArea6);
+ chartArea2.Name = "ChartArea1";
+ chartCPU.ChartAreas.Add(chartArea2);
chartCPU.Dock = DockStyle.Fill;
chartCPU.Location = new Point(12, 10);
chartCPU.Margin = new Padding(2, 10, 2, 10);
@@ -257,13 +257,13 @@ namespace GHelper
chartCPU.Size = new Size(782, 437);
chartCPU.TabIndex = 14;
chartCPU.Text = "chartCPU";
- title6.Name = "Title1";
- chartCPU.Titles.Add(title6);
+ title2.Name = "Title1";
+ chartCPU.Titles.Add(title2);
//
// chartXGM
//
- chartArea7.Name = "ChartAreaXGM";
- chartXGM.ChartAreas.Add(chartArea7);
+ chartArea3.Name = "ChartAreaXGM";
+ chartXGM.ChartAreas.Add(chartArea3);
chartXGM.Dock = DockStyle.Fill;
chartXGM.Location = new Point(12, 1381);
chartXGM.Margin = new Padding(2, 10, 2, 10);
@@ -271,14 +271,14 @@ namespace GHelper
chartXGM.Size = new Size(782, 440);
chartXGM.TabIndex = 14;
chartXGM.Text = "chartXGM";
- title7.Name = "Title4";
- chartXGM.Titles.Add(title7);
+ title3.Name = "Title4";
+ chartXGM.Titles.Add(title3);
chartXGM.Visible = false;
//
// chartMid
//
- chartArea8.Name = "ChartArea3";
- chartMid.ChartAreas.Add(chartArea8);
+ chartArea4.Name = "ChartArea3";
+ chartMid.ChartAreas.Add(chartArea4);
chartMid.Dock = DockStyle.Fill;
chartMid.Location = new Point(12, 924);
chartMid.Margin = new Padding(2, 10, 2, 10);
@@ -286,8 +286,8 @@ namespace GHelper
chartMid.Size = new Size(782, 437);
chartMid.TabIndex = 14;
chartMid.Text = "chartMid";
- title8.Name = "Title3";
- chartMid.Titles.Add(title8);
+ title4.Name = "Title3";
+ chartMid.Titles.Add(title4);
chartMid.Visible = false;
//
// panelTitleFans
@@ -494,87 +494,6 @@ namespace GHelper
panelAdvanced.TabIndex = 14;
panelAdvanced.Visible = false;
//
- // panelTemperature
- //
- panelTemperature.AutoSize = true;
- panelTemperature.AutoSizeMode = AutoSizeMode.GrowAndShrink;
- panelTemperature.Controls.Add(labelTemp);
- panelTemperature.Controls.Add(labelLeftTemp);
- panelTemperature.Controls.Add(trackTemp);
- panelTemperature.Dock = DockStyle.Top;
- panelTemperature.Location = new Point(0, 66);
- panelTemperature.Margin = new Padding(4);
- panelTemperature.MaximumSize = new Size(0, 124);
- panelTemperature.Name = "panelTemperature";
- panelTemperature.Size = new Size(520, 124);
- panelTemperature.TabIndex = 51;
- //
- // labelTemp
- //
- labelTemp.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
- labelTemp.Location = new Point(347, 13);
- labelTemp.Margin = new Padding(4, 0, 4, 0);
- labelTemp.Name = "labelTemp";
- labelTemp.Size = new Size(148, 32);
- labelTemp.TabIndex = 13;
- labelTemp.Text = "T";
- labelTemp.TextAlign = ContentAlignment.TopRight;
- //
- // labelLeftTemp
- //
- labelLeftTemp.AutoSize = true;
- labelLeftTemp.Location = new Point(10, 10);
- labelLeftTemp.Margin = new Padding(4, 0, 4, 0);
- labelLeftTemp.Name = "labelLeftTemp";
- labelLeftTemp.Size = new Size(183, 32);
- labelLeftTemp.TabIndex = 12;
- labelLeftTemp.Text = "CPU Temp Limit";
- //
- // trackTemp
- //
- trackTemp.Location = new Point(6, 48);
- trackTemp.Margin = new Padding(4, 2, 4, 2);
- trackTemp.Maximum = 0;
- trackTemp.Minimum = -40;
- trackTemp.Name = "trackTemp";
- trackTemp.Size = new Size(508, 90);
- trackTemp.TabIndex = 11;
- trackTemp.TickFrequency = 5;
- trackTemp.TickStyle = TickStyle.TopLeft;
- //
- // panelTitleTemp
- //
- panelTitleTemp.Controls.Add(pictureTemp);
- panelTitleTemp.Controls.Add(labelTempLimit);
- panelTitleTemp.Dock = DockStyle.Top;
- panelTitleTemp.Location = new Point(0, 0);
- panelTitleTemp.Name = "panelTitleTemp";
- panelTitleTemp.Size = new Size(520, 66);
- panelTitleTemp.TabIndex = 50;
- //
- // pictureTemp
- //
- pictureTemp.BackgroundImage = Properties.Resources.icons8_temperature_48;
- pictureTemp.BackgroundImageLayout = ImageLayout.Zoom;
- pictureTemp.InitialImage = null;
- pictureTemp.Location = new Point(10, 18);
- pictureTemp.Margin = new Padding(4, 2, 4, 10);
- pictureTemp.Name = "pictureTemp";
- pictureTemp.Size = new Size(36, 38);
- pictureTemp.TabIndex = 48;
- pictureTemp.TabStop = false;
- //
- // labelTempLimit
- //
- labelTempLimit.AutoSize = true;
- labelTempLimit.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
- labelTempLimit.Location = new Point(51, 20);
- labelTempLimit.Margin = new Padding(4, 0, 4, 0);
- labelTempLimit.Name = "labelTempLimit";
- labelTempLimit.Size = new Size(140, 32);
- labelTempLimit.TabIndex = 47;
- labelTempLimit.Text = "Temp Limit";
- //
// panelAdvancedApply
//
panelAdvancedApply.Controls.Add(checkApplyUV);
@@ -618,11 +537,14 @@ namespace GHelper
//
// labelRisky
//
+ labelRisky.BackColor = Color.IndianRed;
labelRisky.Dock = DockStyle.Top;
+ labelRisky.ForeColor = SystemColors.ControlLightLight;
labelRisky.Location = new Point(0, 504);
+ labelRisky.Margin = new Padding(0, 0, 0, 0);
labelRisky.Name = "labelRisky";
labelRisky.Padding = new Padding(10, 10, 10, 5);
- labelRisky.Size = new Size(520, 198);
+ labelRisky.Size = new Size(520, 220);
labelRisky.TabIndex = 46;
labelRisky.Text = resources.GetString("labelRisky.Text");
//
@@ -755,6 +677,87 @@ namespace GHelper
labelTitleUV.TabIndex = 47;
labelTitleUV.Text = "Undervolting";
//
+ // panelTemperature
+ //
+ panelTemperature.AutoSize = true;
+ panelTemperature.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelTemperature.Controls.Add(labelTemp);
+ panelTemperature.Controls.Add(labelLeftTemp);
+ panelTemperature.Controls.Add(trackTemp);
+ panelTemperature.Dock = DockStyle.Top;
+ panelTemperature.Location = new Point(0, 66);
+ panelTemperature.Margin = new Padding(4);
+ panelTemperature.MaximumSize = new Size(0, 124);
+ panelTemperature.Name = "panelTemperature";
+ panelTemperature.Size = new Size(520, 124);
+ panelTemperature.TabIndex = 51;
+ //
+ // labelTemp
+ //
+ labelTemp.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelTemp.Location = new Point(347, 13);
+ labelTemp.Margin = new Padding(4, 0, 4, 0);
+ labelTemp.Name = "labelTemp";
+ labelTemp.Size = new Size(148, 32);
+ labelTemp.TabIndex = 13;
+ labelTemp.Text = "T";
+ labelTemp.TextAlign = ContentAlignment.TopRight;
+ //
+ // labelLeftTemp
+ //
+ labelLeftTemp.AutoSize = true;
+ labelLeftTemp.Location = new Point(10, 10);
+ labelLeftTemp.Margin = new Padding(4, 0, 4, 0);
+ labelLeftTemp.Name = "labelLeftTemp";
+ labelLeftTemp.Size = new Size(183, 32);
+ labelLeftTemp.TabIndex = 12;
+ labelLeftTemp.Text = "CPU Temp Limit";
+ //
+ // trackTemp
+ //
+ trackTemp.Location = new Point(6, 48);
+ trackTemp.Margin = new Padding(4, 2, 4, 2);
+ trackTemp.Maximum = 0;
+ trackTemp.Minimum = -40;
+ trackTemp.Name = "trackTemp";
+ trackTemp.Size = new Size(508, 90);
+ trackTemp.TabIndex = 11;
+ trackTemp.TickFrequency = 5;
+ trackTemp.TickStyle = TickStyle.TopLeft;
+ //
+ // panelTitleTemp
+ //
+ panelTitleTemp.Controls.Add(pictureTemp);
+ panelTitleTemp.Controls.Add(labelTempLimit);
+ panelTitleTemp.Dock = DockStyle.Top;
+ panelTitleTemp.Location = new Point(0, 0);
+ panelTitleTemp.Name = "panelTitleTemp";
+ panelTitleTemp.Size = new Size(520, 66);
+ panelTitleTemp.TabIndex = 50;
+ //
+ // pictureTemp
+ //
+ pictureTemp.BackgroundImage = Properties.Resources.icons8_temperature_48;
+ pictureTemp.BackgroundImageLayout = ImageLayout.Zoom;
+ pictureTemp.InitialImage = null;
+ pictureTemp.Location = new Point(10, 18);
+ pictureTemp.Margin = new Padding(4, 2, 4, 10);
+ pictureTemp.Name = "pictureTemp";
+ pictureTemp.Size = new Size(36, 38);
+ pictureTemp.TabIndex = 48;
+ pictureTemp.TabStop = false;
+ //
+ // labelTempLimit
+ //
+ labelTempLimit.AutoSize = true;
+ labelTempLimit.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelTempLimit.Location = new Point(51, 20);
+ labelTempLimit.Margin = new Padding(4, 0, 4, 0);
+ labelTempLimit.Name = "labelTempLimit";
+ labelTempLimit.Size = new Size(140, 32);
+ labelTempLimit.TabIndex = 47;
+ labelTempLimit.Text = "Temp Limit";
+ //
// panelPower
//
panelPower.AutoSize = true;
@@ -1393,12 +1396,6 @@ namespace GHelper
panelSliders.PerformLayout();
panelAdvanced.ResumeLayout(false);
panelAdvanced.PerformLayout();
- panelTemperature.ResumeLayout(false);
- panelTemperature.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)trackTemp).EndInit();
- panelTitleTemp.ResumeLayout(false);
- panelTitleTemp.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
panelAdvancedApply.ResumeLayout(false);
panelUViGPU.ResumeLayout(false);
panelUViGPU.PerformLayout();
@@ -1409,6 +1406,12 @@ namespace GHelper
panelTitleAdvanced.ResumeLayout(false);
panelTitleAdvanced.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureUV).EndInit();
+ panelTemperature.ResumeLayout(false);
+ panelTemperature.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)trackTemp).EndInit();
+ panelTitleTemp.ResumeLayout(false);
+ panelTitleTemp.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
panelPower.ResumeLayout(false);
panelPower.PerformLayout();
panelApplyPower.ResumeLayout(false);
diff --git a/app/Fans.cs b/app/Fans.cs
index 651f5b3b..193f5935 100644
--- a/app/Fans.cs
+++ b/app/Fans.cs
@@ -1,10 +1,7 @@
using CustomControls;
using GHelper.Gpu;
using Ryzen;
-using System;
using System.Diagnostics;
-using System.Net.Sockets;
-using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace GHelper
@@ -53,6 +50,8 @@ namespace GHelper
labelGPUBoostTitle.Text = Properties.Strings.GPUBoost;
labelGPUTempTitle.Text = Properties.Strings.GPUTempTarget;
+ labelRisky.Text = Properties.Strings.UndervoltingRisky;
+
InitTheme(true);
MinRPM = 18;
@@ -623,7 +622,7 @@ namespace GHelper
public void InitPower(bool changed = false)
{
- bool modeA0 = Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0;
+ bool modeA0 = Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0 || Undervolter.IsAMD();
bool modeB0 = Program.acpi.IsAllAmdPPT();
bool modeC1 = Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0;
diff --git a/app/GHelper.csproj b/app/GHelper.csproj
index ce248f1d..50312cf2 100644
--- a/app/GHelper.csproj
+++ b/app/GHelper.csproj
@@ -16,7 +16,7 @@
AnyCPU
False
True
- 0.89
+ 0.90
diff --git a/app/Program.cs b/app/Program.cs
index 6b5e96b7..3e7cc54f 100644
--- a/app/Program.cs
+++ b/app/Program.cs
@@ -193,6 +193,10 @@ namespace GHelper
switch (action)
{
+ case "cpu":
+ Startup.ReScheduleAdmin();
+ settingsForm.FansToggle();
+ break;
case "gpu":
Startup.ReScheduleAdmin();
settingsForm.FansToggle(1);
diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs
index 3be60002..710329b7 100644
--- a/app/Properties/Strings.Designer.cs
+++ b/app/Properties/Strings.Designer.cs
@@ -160,7 +160,7 @@ namespace GHelper.Properties {
}
///
- /// Looks up a localized string similar to Apply.
+ /// Looks up a localized string similar to Apply Power Limits.
///
internal static string ApplyPowerLimits {
get {
@@ -1176,6 +1176,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Undervolting is experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you..
+ ///
+ internal static string UndervoltingRisky {
+ get {
+ return ResourceManager.GetString("UndervoltingRisky", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Updates.
///
diff --git a/app/Properties/Strings.es.resx b/app/Properties/Strings.es.resx
index 7e8cb729..e73bc8b3 100644
--- a/app/Properties/Strings.es.resx
+++ b/app/Properties/Strings.es.resx
@@ -403,7 +403,7 @@
Overdrive
- Modo de rendimiento
+ Modo
Imagen / Gif
diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx
index 3e0175d1..d22c296a 100644
--- a/app/Properties/Strings.resx
+++ b/app/Properties/Strings.resx
@@ -489,6 +489,9 @@
Ultimate
+
+ Undervolting is experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.
+
Updates
diff --git a/app/Ryzen/RyzenSmu.cs b/app/Ryzen/RyzenSmu.cs
index d031f03c..04f5decd 100644
--- a/app/Ryzen/RyzenSmu.cs
+++ b/app/Ryzen/RyzenSmu.cs
@@ -135,12 +135,16 @@ namespace Ryzen
public Status SendMp1(uint message, ref uint[] arguments)
{
- return SendMsg(MP1_ADDR_MSG, MP1_ADDR_RSP, MP1_ADDR_ARG, message, ref arguments);
+ var result = SendMsg(MP1_ADDR_MSG, MP1_ADDR_RSP, MP1_ADDR_ARG, message, ref arguments);
+ Logger.WriteLine($"RyzenMP1:{message} {arguments[0]} {result}");
+ return result;
}
public Status SendPsmu(uint message, ref uint[] arguments)
{
- return SendMsg(PSMU_ADDR_MSG, PSMU_ADDR_RSP, PSMU_ADDR_ARG, message, ref arguments);
+ var result = SendMsg(PSMU_ADDR_MSG, PSMU_ADDR_RSP, PSMU_ADDR_ARG, message, ref arguments);
+ Logger.WriteLine($"RyzenPSMU:{message} {arguments[0]} {result}");
+ return result;
}
diff --git a/app/Ryzen/Undervolter.cs b/app/Ryzen/Undervolter.cs
index 35dd7a95..df21283f 100644
--- a/app/Ryzen/Undervolter.cs
+++ b/app/Ryzen/Undervolter.cs
@@ -126,11 +126,14 @@ namespace Ryzen
public static bool IsAMD()
{
-
if (CPUName.Length == 0) Init();
-
return CPUName.Contains("AMD") || CPUName.Contains("Ryzen") || CPUName.Contains("Athlon") || CPUName.Contains("Radeon") || CPUName.Contains("AMD Custom APU 0405");
+ }
+ public static bool IsRyzen9()
+ {
+ if (CPUName.Length == 0) Init();
+ return CPUName.Contains("Ryzen 9");
}
public static void SetAddresses()
diff --git a/app/Settings.cs b/app/Settings.cs
index a093405f..97c02974 100644
--- a/app/Settings.cs
+++ b/app/Settings.cs
@@ -1036,7 +1036,7 @@ namespace GHelper
labelPerf.Text = Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : "");
}
- public void SetPower()
+ public void SetPower(bool launchAsAdmin = false)
{
int limit_total = AppConfig.GetMode("limit_total");
@@ -1058,6 +1058,21 @@ namespace GHelper
Program.acpi.DeviceSet(AsusACPI.PPT_TotalA0, limit_total, "PowerLimit A0");
Program.acpi.DeviceSet(AsusACPI.PPT_APUA3, limit_total, "PowerLimit A3");
customPower = limit_total;
+ } else if (Undervolter.IsAMD())
+ {
+
+ if (ProcessHelper.IsUserAdministrator())
+ {
+ SendCommand.set_stapm_limit((uint)limit_total * 1000);
+ SendCommand.set_stapm2_limit((uint)limit_total * 1000);
+ SendCommand.set_slow_limit((uint)limit_total * 1000);
+ SendCommand.set_fast_limit((uint)limit_total * 1000);
+ customPower = limit_total;
+ } else if (launchAsAdmin)
+ {
+ ProcessHelper.RunAsAdmin("cpu");
+ return;
+ }
}
if (Program.acpi.IsAllAmdPPT()) // CPU limit all amd models
@@ -1293,7 +1308,7 @@ namespace GHelper
}
else
{
- if (applyPower) SetPower();
+ if (applyPower) SetPower(true);
SetGPUPower();
AutoUV();
}
diff --git a/app/Updates.cs b/app/Updates.cs
index 5bec0c9f..d6a8cb17 100644
--- a/app/Updates.cs
+++ b/app/Updates.cs
@@ -1,5 +1,4 @@
using CustomControls;
-using HidSharp;
using System.Diagnostics;
using System.Management;
using System.Net;
@@ -90,7 +89,8 @@ namespace GHelper
{
model = results[0];
bios = results[1];
- } else
+ }
+ else
{
model = obj["SMBIOSBIOSVersion"].ToString();
}
@@ -118,7 +118,7 @@ namespace GHelper
var groups = data.GetProperty("Result").GetProperty("Obj");
- List skipList = new() { "Armoury Crate & Aura Creator Installer", "MyASUS", "ASUS Smart Display Control", "Aura Wallpaper", "Virtual Pet","ROG Font V1.5" };
+ List skipList = new() { "Armoury Crate & Aura Creator Installer", "MyASUS", "ASUS Smart Display Control", "Aura Wallpaper", "Virtual Pet", "ROG Font V1.5" };
List drivers = new();
for (int i = 0; i < groups.GetArrayLength(); i++)