mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
GPU boost / temp limits control
This commit is contained in:
@@ -49,9 +49,9 @@ public class ASUSWmi
|
|||||||
public const int PPT_CPUB0 = 0x001200B0; // CPU PPT on 2022 (PPT_LIMIT_APU)
|
public const int PPT_CPUB0 = 0x001200B0; // CPU PPT on 2022 (PPT_LIMIT_APU)
|
||||||
public const int PPT_CPUB1 = 0x001200B1; // Total PPT on 2022 (PPT_LIMIT_SLOW)
|
public const int PPT_CPUB1 = 0x001200B1; // Total PPT on 2022 (PPT_LIMIT_SLOW)
|
||||||
|
|
||||||
public const int PPT_APUC0 = 0x001200C0; // does nothing on G14 2022
|
public const int PPT_GPUC0 = 0x001200C0; // NVIDIA GPU Boost
|
||||||
public const int PPT_APUC1 = 0x001200C1; // Actual Power Limit (PPT_LIMIT_FAST) AND Sustained Power Limit (STAPM_LIMIT)
|
public const int PPT_APUC1 = 0x001200C1; // Actual Power Limit (PPT_LIMIT_FAST) AND Sustained Power Limit (STAPM_LIMIT)
|
||||||
public const int PPT_APUC2 = 0x001200C2; // does nothing on G14 2022
|
public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C)
|
||||||
|
|
||||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||||
public const int TUF_KB = 0x00100056;
|
public const int TUF_KB = 0x00100056;
|
||||||
@@ -74,6 +74,12 @@ public class ASUSWmi
|
|||||||
public const int MinCPU = 5;
|
public const int MinCPU = 5;
|
||||||
public const int DefaultCPU = 80;
|
public const int DefaultCPU = 80;
|
||||||
|
|
||||||
|
public const int MinGPUBoost = 5;
|
||||||
|
public const int MaxGPUBoost = 25;
|
||||||
|
|
||||||
|
public const int MinGPUTemp = 75;
|
||||||
|
public const int MaxGPUTemp = 87;
|
||||||
|
|
||||||
|
|
||||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||||
private static extern IntPtr CreateFile(
|
private static extern IntPtr CreateFile(
|
||||||
|
|||||||
170
app/Fans.Designer.cs
generated
170
app/Fans.Designer.cs
generated
@@ -31,12 +31,12 @@ namespace GHelper
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
ChartArea chartArea1 = new ChartArea();
|
ChartArea chartArea13 = new ChartArea();
|
||||||
Title title1 = new Title();
|
Title title13 = new Title();
|
||||||
ChartArea chartArea2 = new ChartArea();
|
ChartArea chartArea14 = new ChartArea();
|
||||||
Title title2 = new Title();
|
Title title14 = new Title();
|
||||||
ChartArea chartArea3 = new ChartArea();
|
ChartArea chartArea15 = new ChartArea();
|
||||||
Title title3 = new Title();
|
Title title15 = new Title();
|
||||||
panelFans = new Panel();
|
panelFans = new Panel();
|
||||||
labelFansResult = new Label();
|
labelFansResult = new Label();
|
||||||
labelTip = new Label();
|
labelTip = new Label();
|
||||||
@@ -78,6 +78,14 @@ namespace GHelper
|
|||||||
panelTitleGPU = new Panel();
|
panelTitleGPU = new Panel();
|
||||||
pictureGPU = new PictureBox();
|
pictureGPU = new PictureBox();
|
||||||
labelGPU = new Label();
|
labelGPU = new Label();
|
||||||
|
panelGPUBoost = new Panel();
|
||||||
|
labelGPUBoost = new Label();
|
||||||
|
labelGPUBoostTitle = new Label();
|
||||||
|
trackGPUBoost = new TrackBar();
|
||||||
|
panelGPUTemp = new Panel();
|
||||||
|
labelGPUTemp = new Label();
|
||||||
|
labelGPUTempTitle = new Label();
|
||||||
|
trackGPUTemp = new TrackBar();
|
||||||
panelFans.SuspendLayout();
|
panelFans.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
||||||
tableFanCharts.SuspendLayout();
|
tableFanCharts.SuspendLayout();
|
||||||
@@ -100,6 +108,10 @@ namespace GHelper
|
|||||||
((System.ComponentModel.ISupportInitialize)trackGPUCore).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackGPUCore).BeginInit();
|
||||||
panelTitleGPU.SuspendLayout();
|
panelTitleGPU.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
||||||
|
panelGPUBoost.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackGPUBoost).BeginInit();
|
||||||
|
panelGPUTemp.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// panelFans
|
// panelFans
|
||||||
@@ -199,8 +211,8 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
// chartGPU
|
// chartGPU
|
||||||
//
|
//
|
||||||
chartArea1.Name = "ChartArea1";
|
chartArea13.Name = "ChartArea1";
|
||||||
chartGPU.ChartAreas.Add(chartArea1);
|
chartGPU.ChartAreas.Add(chartArea13);
|
||||||
chartGPU.Dock = DockStyle.Fill;
|
chartGPU.Dock = DockStyle.Fill;
|
||||||
chartGPU.Location = new Point(2, 350);
|
chartGPU.Location = new Point(2, 350);
|
||||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -208,13 +220,13 @@ namespace GHelper
|
|||||||
chartGPU.Size = new Size(760, 320);
|
chartGPU.Size = new Size(760, 320);
|
||||||
chartGPU.TabIndex = 17;
|
chartGPU.TabIndex = 17;
|
||||||
chartGPU.Text = "chartGPU";
|
chartGPU.Text = "chartGPU";
|
||||||
title1.Name = "Title1";
|
title13.Name = "Title1";
|
||||||
chartGPU.Titles.Add(title1);
|
chartGPU.Titles.Add(title13);
|
||||||
//
|
//
|
||||||
// chartCPU
|
// chartCPU
|
||||||
//
|
//
|
||||||
chartArea2.Name = "ChartArea1";
|
chartArea14.Name = "ChartArea1";
|
||||||
chartCPU.ChartAreas.Add(chartArea2);
|
chartCPU.ChartAreas.Add(chartArea14);
|
||||||
chartCPU.Dock = DockStyle.Fill;
|
chartCPU.Dock = DockStyle.Fill;
|
||||||
chartCPU.Location = new Point(2, 10);
|
chartCPU.Location = new Point(2, 10);
|
||||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -222,13 +234,13 @@ namespace GHelper
|
|||||||
chartCPU.Size = new Size(760, 320);
|
chartCPU.Size = new Size(760, 320);
|
||||||
chartCPU.TabIndex = 14;
|
chartCPU.TabIndex = 14;
|
||||||
chartCPU.Text = "chartCPU";
|
chartCPU.Text = "chartCPU";
|
||||||
title2.Name = "Title1";
|
title14.Name = "Title1";
|
||||||
chartCPU.Titles.Add(title2);
|
chartCPU.Titles.Add(title14);
|
||||||
//
|
//
|
||||||
// chartMid
|
// chartMid
|
||||||
//
|
//
|
||||||
chartArea3.Name = "ChartArea3";
|
chartArea15.Name = "ChartArea3";
|
||||||
chartMid.ChartAreas.Add(chartArea3);
|
chartMid.ChartAreas.Add(chartArea15);
|
||||||
chartMid.Dock = DockStyle.Fill;
|
chartMid.Dock = DockStyle.Fill;
|
||||||
chartMid.Location = new Point(2, 690);
|
chartMid.Location = new Point(2, 690);
|
||||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||||
@@ -236,8 +248,8 @@ namespace GHelper
|
|||||||
chartMid.Size = new Size(760, 322);
|
chartMid.Size = new Size(760, 322);
|
||||||
chartMid.TabIndex = 14;
|
chartMid.TabIndex = 14;
|
||||||
chartMid.Text = "chartMid";
|
chartMid.Text = "chartMid";
|
||||||
title3.Name = "Title3";
|
title15.Name = "Title3";
|
||||||
chartMid.Titles.Add(title3);
|
chartMid.Titles.Add(title15);
|
||||||
chartMid.Visible = false;
|
chartMid.Visible = false;
|
||||||
//
|
//
|
||||||
// labelFans
|
// labelFans
|
||||||
@@ -304,16 +316,16 @@ namespace GHelper
|
|||||||
panelPower.Controls.Add(panelTotal);
|
panelPower.Controls.Add(panelTotal);
|
||||||
panelPower.Controls.Add(panelTitleCPU);
|
panelPower.Controls.Add(panelTitleCPU);
|
||||||
panelPower.Dock = DockStyle.Fill;
|
panelPower.Dock = DockStyle.Fill;
|
||||||
panelPower.Location = new Point(10, 345);
|
panelPower.Location = new Point(10, 634);
|
||||||
panelPower.Name = "panelPower";
|
panelPower.Name = "panelPower";
|
||||||
panelPower.Size = new Size(523, 844);
|
panelPower.Size = new Size(523, 555);
|
||||||
panelPower.TabIndex = 43;
|
panelPower.TabIndex = 43;
|
||||||
//
|
//
|
||||||
// panelApplyPower
|
// panelApplyPower
|
||||||
//
|
//
|
||||||
panelApplyPower.Controls.Add(checkApplyPower);
|
panelApplyPower.Controls.Add(checkApplyPower);
|
||||||
panelApplyPower.Dock = DockStyle.Bottom;
|
panelApplyPower.Dock = DockStyle.Bottom;
|
||||||
panelApplyPower.Location = new Point(0, 752);
|
panelApplyPower.Location = new Point(0, 463);
|
||||||
panelApplyPower.Name = "panelApplyPower";
|
panelApplyPower.Name = "panelApplyPower";
|
||||||
panelApplyPower.Padding = new Padding(10);
|
panelApplyPower.Padding = new Padding(10);
|
||||||
panelApplyPower.Size = new Size(523, 92);
|
panelApplyPower.Size = new Size(523, 92);
|
||||||
@@ -482,13 +494,15 @@ namespace GHelper
|
|||||||
// panelGPU
|
// panelGPU
|
||||||
//
|
//
|
||||||
panelGPU.AutoSize = true;
|
panelGPU.AutoSize = true;
|
||||||
|
panelGPU.Controls.Add(panelGPUTemp);
|
||||||
|
panelGPU.Controls.Add(panelGPUBoost);
|
||||||
panelGPU.Controls.Add(panelGPUMemory);
|
panelGPU.Controls.Add(panelGPUMemory);
|
||||||
panelGPU.Controls.Add(panelGPUCore);
|
panelGPU.Controls.Add(panelGPUCore);
|
||||||
panelGPU.Controls.Add(panelTitleGPU);
|
panelGPU.Controls.Add(panelTitleGPU);
|
||||||
panelGPU.Dock = DockStyle.Top;
|
panelGPU.Dock = DockStyle.Top;
|
||||||
panelGPU.Location = new Point(10, 0);
|
panelGPU.Location = new Point(10, 0);
|
||||||
panelGPU.Name = "panelGPU";
|
panelGPU.Name = "panelGPU";
|
||||||
panelGPU.Size = new Size(523, 345);
|
panelGPU.Size = new Size(523, 634);
|
||||||
panelGPU.TabIndex = 44;
|
panelGPU.TabIndex = 44;
|
||||||
//
|
//
|
||||||
// panelGPUMemory
|
// panelGPUMemory
|
||||||
@@ -532,7 +546,7 @@ namespace GHelper
|
|||||||
trackGPUMemory.Margin = new Padding(4, 2, 4, 2);
|
trackGPUMemory.Margin = new Padding(4, 2, 4, 2);
|
||||||
trackGPUMemory.Maximum = 300;
|
trackGPUMemory.Maximum = 300;
|
||||||
trackGPUMemory.Name = "trackGPUMemory";
|
trackGPUMemory.Name = "trackGPUMemory";
|
||||||
trackGPUMemory.Size = new Size(513, 90);
|
trackGPUMemory.Size = new Size(502, 90);
|
||||||
trackGPUMemory.SmallChange = 10;
|
trackGPUMemory.SmallChange = 10;
|
||||||
trackGPUMemory.TabIndex = 42;
|
trackGPUMemory.TabIndex = 42;
|
||||||
trackGPUMemory.TickFrequency = 50;
|
trackGPUMemory.TickFrequency = 50;
|
||||||
@@ -571,7 +585,7 @@ namespace GHelper
|
|||||||
trackGPUCore.Maximum = 300;
|
trackGPUCore.Maximum = 300;
|
||||||
trackGPUCore.Name = "trackGPUCore";
|
trackGPUCore.Name = "trackGPUCore";
|
||||||
trackGPUCore.RightToLeft = RightToLeft.No;
|
trackGPUCore.RightToLeft = RightToLeft.No;
|
||||||
trackGPUCore.Size = new Size(513, 90);
|
trackGPUCore.Size = new Size(502, 90);
|
||||||
trackGPUCore.SmallChange = 10;
|
trackGPUCore.SmallChange = 10;
|
||||||
trackGPUCore.TabIndex = 18;
|
trackGPUCore.TabIndex = 18;
|
||||||
trackGPUCore.TickFrequency = 50;
|
trackGPUCore.TickFrequency = 50;
|
||||||
@@ -622,6 +636,100 @@ namespace GHelper
|
|||||||
labelGPU.TabIndex = 40;
|
labelGPU.TabIndex = 40;
|
||||||
labelGPU.Text = "GPU Settings";
|
labelGPU.Text = "GPU Settings";
|
||||||
//
|
//
|
||||||
|
// panelGPUBoost
|
||||||
|
//
|
||||||
|
panelGPUBoost.AutoSize = true;
|
||||||
|
panelGPUBoost.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
panelGPUBoost.Controls.Add(labelGPUBoost);
|
||||||
|
panelGPUBoost.Controls.Add(labelGPUBoostTitle);
|
||||||
|
panelGPUBoost.Controls.Add(trackGPUBoost);
|
||||||
|
panelGPUBoost.Dock = DockStyle.Top;
|
||||||
|
panelGPUBoost.Location = new Point(0, 345);
|
||||||
|
panelGPUBoost.Name = "panelGPUBoost";
|
||||||
|
panelGPUBoost.Size = new Size(523, 140);
|
||||||
|
panelGPUBoost.TabIndex = 46;
|
||||||
|
//
|
||||||
|
// labelGPUBoost
|
||||||
|
//
|
||||||
|
labelGPUBoost.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
labelGPUBoost.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelGPUBoost.Location = new Point(374, 14);
|
||||||
|
labelGPUBoost.Name = "labelGPUBoost";
|
||||||
|
labelGPUBoost.Size = new Size(130, 32);
|
||||||
|
labelGPUBoost.TabIndex = 44;
|
||||||
|
labelGPUBoost.Text = "25W";
|
||||||
|
labelGPUBoost.TextAlign = ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
|
// labelGPUBoostTitle
|
||||||
|
//
|
||||||
|
labelGPUBoostTitle.AutoSize = true;
|
||||||
|
labelGPUBoostTitle.Location = new Point(10, 14);
|
||||||
|
labelGPUBoostTitle.Name = "labelGPUBoostTitle";
|
||||||
|
labelGPUBoostTitle.Size = new Size(174, 32);
|
||||||
|
labelGPUBoostTitle.TabIndex = 43;
|
||||||
|
labelGPUBoostTitle.Text = "Dynamic Boost";
|
||||||
|
//
|
||||||
|
// trackGPUBoost
|
||||||
|
//
|
||||||
|
trackGPUBoost.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
trackGPUBoost.Location = new Point(6, 48);
|
||||||
|
trackGPUBoost.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
trackGPUBoost.Maximum = 25;
|
||||||
|
trackGPUBoost.Minimum = 5;
|
||||||
|
trackGPUBoost.Name = "trackGPUBoost";
|
||||||
|
trackGPUBoost.Size = new Size(502, 90);
|
||||||
|
trackGPUBoost.TabIndex = 42;
|
||||||
|
trackGPUBoost.TickFrequency = 5;
|
||||||
|
trackGPUBoost.TickStyle = TickStyle.TopLeft;
|
||||||
|
trackGPUBoost.Value = 25;
|
||||||
|
//
|
||||||
|
// panelGPUTemp
|
||||||
|
//
|
||||||
|
panelGPUTemp.AutoSize = true;
|
||||||
|
panelGPUTemp.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
panelGPUTemp.Controls.Add(labelGPUTemp);
|
||||||
|
panelGPUTemp.Controls.Add(labelGPUTempTitle);
|
||||||
|
panelGPUTemp.Controls.Add(trackGPUTemp);
|
||||||
|
panelGPUTemp.Dock = DockStyle.Top;
|
||||||
|
panelGPUTemp.Location = new Point(0, 485);
|
||||||
|
panelGPUTemp.Name = "panelGPUTemp";
|
||||||
|
panelGPUTemp.Size = new Size(523, 149);
|
||||||
|
panelGPUTemp.TabIndex = 47;
|
||||||
|
//
|
||||||
|
// labelGPUTemp
|
||||||
|
//
|
||||||
|
labelGPUTemp.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
labelGPUTemp.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelGPUTemp.Location = new Point(378, 14);
|
||||||
|
labelGPUTemp.Name = "labelGPUTemp";
|
||||||
|
labelGPUTemp.Size = new Size(130, 32);
|
||||||
|
labelGPUTemp.TabIndex = 44;
|
||||||
|
labelGPUTemp.Text = "87C";
|
||||||
|
labelGPUTemp.TextAlign = ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
|
// labelGPUTempTitle
|
||||||
|
//
|
||||||
|
labelGPUTempTitle.AutoSize = true;
|
||||||
|
labelGPUTempTitle.Location = new Point(10, 14);
|
||||||
|
labelGPUTempTitle.Name = "labelGPUTempTitle";
|
||||||
|
labelGPUTempTitle.Size = new Size(173, 32);
|
||||||
|
labelGPUTempTitle.TabIndex = 43;
|
||||||
|
labelGPUTempTitle.Text = "Thermal Target";
|
||||||
|
//
|
||||||
|
// trackGPUTemp
|
||||||
|
//
|
||||||
|
trackGPUTemp.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
trackGPUTemp.Location = new Point(6, 57);
|
||||||
|
trackGPUTemp.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
trackGPUTemp.Maximum = 87;
|
||||||
|
trackGPUTemp.Minimum = 75;
|
||||||
|
trackGPUTemp.Name = "trackGPUTemp";
|
||||||
|
trackGPUTemp.Size = new Size(502, 90);
|
||||||
|
trackGPUTemp.TabIndex = 42;
|
||||||
|
trackGPUTemp.TickFrequency = 5;
|
||||||
|
trackGPUTemp.TickStyle = TickStyle.TopLeft;
|
||||||
|
trackGPUTemp.Value = 87;
|
||||||
|
//
|
||||||
// Fans
|
// Fans
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||||
@@ -674,6 +782,12 @@ namespace GHelper
|
|||||||
panelTitleGPU.ResumeLayout(false);
|
panelTitleGPU.ResumeLayout(false);
|
||||||
panelTitleGPU.PerformLayout();
|
panelTitleGPU.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit();
|
||||||
|
panelGPUBoost.ResumeLayout(false);
|
||||||
|
panelGPUBoost.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackGPUBoost).EndInit();
|
||||||
|
panelGPUTemp.ResumeLayout(false);
|
||||||
|
panelGPUTemp.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -719,5 +833,13 @@ namespace GHelper
|
|||||||
private Label labelGPU;
|
private Label labelGPU;
|
||||||
private Panel panelApplyPower;
|
private Panel panelApplyPower;
|
||||||
private RCheckBox checkApplyPower;
|
private RCheckBox checkApplyPower;
|
||||||
|
private Panel panelGPUBoost;
|
||||||
|
private Label labelGPUBoost;
|
||||||
|
private Label labelGPUBoostTitle;
|
||||||
|
private TrackBar trackGPUBoost;
|
||||||
|
private Panel panelGPUTemp;
|
||||||
|
private Label labelGPUTemp;
|
||||||
|
private Label labelGPUTempTitle;
|
||||||
|
private TrackBar trackGPUTemp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
56
app/Fans.cs
56
app/Fans.cs
@@ -79,12 +79,23 @@ namespace GHelper
|
|||||||
trackGPUMemory.Minimum = NvidiaGpuControl.MinMemoryOffset;
|
trackGPUMemory.Minimum = NvidiaGpuControl.MinMemoryOffset;
|
||||||
trackGPUMemory.Maximum = NvidiaGpuControl.MaxMemoryOffset;
|
trackGPUMemory.Maximum = NvidiaGpuControl.MaxMemoryOffset;
|
||||||
|
|
||||||
|
trackGPUBoost.Minimum = ASUSWmi.MinGPUBoost;
|
||||||
|
trackGPUBoost.Maximum = ASUSWmi.MaxGPUBoost;
|
||||||
|
|
||||||
|
trackGPUTemp.Minimum = ASUSWmi.MinGPUTemp;
|
||||||
|
trackGPUTemp.Maximum = ASUSWmi.MaxGPUTemp;
|
||||||
|
|
||||||
trackGPUCore.Scroll += trackGPU_Scroll;
|
trackGPUCore.Scroll += trackGPU_Scroll;
|
||||||
trackGPUMemory.Scroll += trackGPU_Scroll;
|
trackGPUMemory.Scroll += trackGPU_Scroll;
|
||||||
|
trackGPUBoost.Scroll += trackGPU_Scroll;
|
||||||
|
trackGPUTemp.Scroll += trackGPU_Scroll;
|
||||||
|
|
||||||
trackGPUCore.MouseUp += TrackGPU_MouseUp;
|
trackGPUCore.MouseUp += TrackGPU_MouseUp;
|
||||||
trackGPUMemory.MouseUp += TrackGPU_MouseUp;
|
trackGPUMemory.MouseUp += TrackGPU_MouseUp;
|
||||||
|
|
||||||
|
trackGPUBoost.MouseUp += TrackGPUBoost_MouseUp;
|
||||||
|
trackGPUTemp.MouseUp += TrackGPUBoost_MouseUp;
|
||||||
|
|
||||||
//labelInfo.MaximumSize = new Size(280, 0);
|
//labelInfo.MaximumSize = new Size(280, 0);
|
||||||
labelInfo.Text = Properties.Strings.PPTExperimental;
|
labelInfo.Text = Properties.Strings.PPTExperimental;
|
||||||
labelFansResult.Visible = false;
|
labelFansResult.Visible = false;
|
||||||
@@ -101,12 +112,19 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TrackGPUBoost_MouseUp(object? sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
Program.config.setConfig("gpu_boost", trackGPUBoost.Value);
|
||||||
|
Program.config.setConfig("gpu_temp", trackGPUTemp.Value);
|
||||||
|
Program.settingsForm.SetGPUPower();
|
||||||
|
}
|
||||||
|
|
||||||
private void TrackGPU_MouseUp(object? sender, MouseEventArgs e)
|
private void TrackGPU_MouseUp(object? sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Program.config.setConfig("GPUCore", trackGPUCore.Value);
|
Program.config.setConfig("gpu_core", trackGPUCore.Value);
|
||||||
Program.config.setConfig("GPUMemory", trackGPUMemory.Value);
|
Program.config.setConfig("gpu_memory", trackGPUMemory.Value);
|
||||||
|
|
||||||
int status = Program.nvControl.SetClocks(trackGPUCore.Value, trackGPUMemory.Value);
|
int status = Program.nvControl.SetClocks(trackGPUCore.Value, trackGPUMemory.Value);
|
||||||
if (status == -1) Program.RunAsAdmin("gpu");
|
if (status == -1) Program.RunAsAdmin("gpu");
|
||||||
@@ -135,41 +153,37 @@ namespace GHelper
|
|||||||
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
||||||
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
||||||
|
|
||||||
VisualiseGPUClocks();
|
int gpu_boost = Program.config.getConfig("gpu_boost");
|
||||||
|
int gpu_temp = Program.config.getConfig("gpu_temp");
|
||||||
|
|
||||||
|
if (gpu_boost < 0) gpu_boost = ASUSWmi.MaxGPUBoost;
|
||||||
|
if (gpu_temp < 0) gpu_temp = ASUSWmi.MaxGPUTemp;
|
||||||
|
|
||||||
|
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, ASUSWmi.MaxGPUBoost), ASUSWmi.MinGPUBoost);
|
||||||
|
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, ASUSWmi.MaxGPUTemp), ASUSWmi.MinGPUTemp);
|
||||||
|
|
||||||
|
VisualiseGPUSettings();
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(ex);
|
Logger.WriteLine(ex.ToString());
|
||||||
panelGPU.Visible = false;
|
panelGPU.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ButtonResetGPU_Click(object? sender, EventArgs e)
|
private void VisualiseGPUSettings()
|
||||||
{
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
trackGPUCore.Value = 0;
|
|
||||||
trackGPUMemory.Value = 0;
|
|
||||||
VisualiseGPUClocks();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void VisualiseGPUClocks()
|
|
||||||
{
|
{
|
||||||
labelGPUCore.Text = $"{trackGPUCore.Value} MHz";
|
labelGPUCore.Text = $"{trackGPUCore.Value} MHz";
|
||||||
labelGPUMemory.Text = $"{trackGPUMemory.Value} MHz";
|
labelGPUMemory.Text = $"{trackGPUMemory.Value} MHz";
|
||||||
|
labelGPUBoost.Text = $"{trackGPUBoost.Value}W";
|
||||||
|
labelGPUTemp.Text = $"{trackGPUTemp.Value}°C";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void trackGPU_Scroll(object? sender, EventArgs e)
|
private void trackGPU_Scroll(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
VisualiseGPUClocks();
|
VisualiseGPUSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
static string ChartPercToRPM(int percentage, string unit = "")
|
static string ChartPercToRPM(int percentage, string unit = "")
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.57</AssemblyVersion>
|
<AssemblyVersion>0.58</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -48,15 +48,15 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
public void GetClocks(out int core, out int memory)
|
public void GetClocks(out int core, out int memory)
|
||||||
{
|
{
|
||||||
PhysicalGPU internalGpu = _internalGpu!;
|
PhysicalGPU internalGpu = _internalGpu!;
|
||||||
PerformanceStates20InfoV3 states = (PerformanceStates20InfoV3)GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
PerformanceStates20InfoV1 states = (PerformanceStates20InfoV1)GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
||||||
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int SetClocksFromConfig()
|
public int SetClocksFromConfig()
|
||||||
{
|
{
|
||||||
int core = Program.config.getConfig("GPUCore");
|
int core = Program.config.getConfig("gpu_core");
|
||||||
int memory = Program.config.getConfig("GPUMemory");
|
int memory = Program.config.getConfig("gpu_memory");
|
||||||
int status = SetClocks(core, memory);
|
int status = SetClocks(core, memory);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
||||||
|
|
||||||
PhysicalGPU internalGpu = _internalGpu!;
|
PhysicalGPU internalGpu = _internalGpu!;
|
||||||
PerformanceStates20InfoV3 states = (PerformanceStates20InfoV3)GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
PerformanceStates20InfoV1 states = (PerformanceStates20InfoV1)GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
||||||
|
|
||||||
states._NumberOfPerformanceStates = 1;
|
states._NumberOfPerformanceStates = 1;
|
||||||
states._NumberOfClocks = 2;
|
states._NumberOfClocks = 2;
|
||||||
@@ -96,8 +96,9 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
.GetPhysicalGPUs()
|
.GetPhysicalGPUs()
|
||||||
.FirstOrDefault(gpu => gpu.SystemType == SystemType.Laptop);
|
.FirstOrDefault(gpu => gpu.SystemType == SystemType.Laptop);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -430,9 +430,9 @@ namespace NvAPIWrapper.Native.Delegates
|
|||||||
public delegate Status NvAPI_GPU_GetPStates20(
|
public delegate Status NvAPI_GPU_GetPStates20(
|
||||||
[In] PhysicalGPUHandle physicalGpu,
|
[In] PhysicalGPUHandle physicalGpu,
|
||||||
[Accepts(
|
[Accepts(
|
||||||
typeof(PerformanceStates20InfoV3),
|
typeof(PerformanceStates20InfoV1),
|
||||||
typeof(PerformanceStates20InfoV2),
|
typeof(PerformanceStates20InfoV2),
|
||||||
typeof(PerformanceStates20InfoV1)
|
typeof(PerformanceStates20InfoV3)
|
||||||
)]
|
)]
|
||||||
[In]
|
[In]
|
||||||
ValueTypeReference performanceStatesInfo);
|
ValueTypeReference performanceStatesInfo);
|
||||||
|
|||||||
@@ -1043,6 +1043,26 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetGPUPower()
|
||||||
|
{
|
||||||
|
|
||||||
|
int gpu_boost = Program.config.getConfig("gpu_boost");
|
||||||
|
int gpu_temp = Program.config.getConfig("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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
protected void LabelFansResult(string text)
|
protected void LabelFansResult(string text)
|
||||||
{
|
{
|
||||||
|
|||||||
5
app/global.json
Normal file
5
app/global.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"sdk": {
|
||||||
|
"version": "7.0.203"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user