This commit is contained in:
Serge
2023-12-13 17:16:44 +01:00
parent e59142140c
commit 4a0e9d2e41
5 changed files with 134 additions and 39 deletions

View File

@@ -536,6 +536,7 @@ public class AsusACPI
public bool IsAllAmdPPT() public bool IsAllAmdPPT()
{ {
//return false;
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0; return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
} }

127
app/Fans.Designer.cs generated
View File

@@ -31,14 +31,14 @@ namespace GHelper
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
ChartArea chartArea1 = new ChartArea(); ChartArea chartArea17 = new ChartArea();
Title title1 = new Title(); Title title17 = new Title();
ChartArea chartArea2 = new ChartArea(); ChartArea chartArea18 = new ChartArea();
Title title2 = new Title(); Title title18 = new Title();
ChartArea chartArea3 = new ChartArea(); ChartArea chartArea19 = new ChartArea();
Title title3 = new Title(); Title title19 = new Title();
ChartArea chartArea4 = new ChartArea(); ChartArea chartArea20 = new ChartArea();
Title title4 = new Title(); Title title20 = new Title();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
panelFans = new Panel(); panelFans = new Panel();
labelTip = new Label(); labelTip = new Label();
@@ -141,6 +141,10 @@ namespace GHelper
buttonAdvanced = new RButton(); buttonAdvanced = new RButton();
buttonGPU = new RButton(); buttonGPU = new RButton();
buttonCPU = new RButton(); buttonCPU = new RButton();
panelA3 = new Panel();
labelA3 = new Label();
labelLeftA3 = new Label();
trackA3 = new TrackBar();
panelFans.SuspendLayout(); panelFans.SuspendLayout();
tableFanCharts.SuspendLayout(); tableFanCharts.SuspendLayout();
((System.ComponentModel.ISupportInitialize)chartGPU).BeginInit(); ((System.ComponentModel.ISupportInitialize)chartGPU).BeginInit();
@@ -195,6 +199,8 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
panelNav.SuspendLayout(); panelNav.SuspendLayout();
tableNav.SuspendLayout(); tableNav.SuspendLayout();
panelA3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackA3).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// panelFans // panelFans
@@ -251,8 +257,8 @@ namespace GHelper
// //
// chartGPU // chartGPU
// //
chartArea1.Name = "ChartArea1"; chartArea17.Name = "ChartArea1";
chartGPU.ChartAreas.Add(chartArea1); chartGPU.ChartAreas.Add(chartArea17);
chartGPU.Dock = DockStyle.Fill; chartGPU.Dock = DockStyle.Fill;
chartGPU.Location = new Point(12, 493); chartGPU.Location = new Point(12, 493);
chartGPU.Margin = new Padding(2, 10, 2, 10); chartGPU.Margin = new Padding(2, 10, 2, 10);
@@ -260,13 +266,13 @@ namespace GHelper
chartGPU.Size = new Size(782, 463); chartGPU.Size = new Size(782, 463);
chartGPU.TabIndex = 17; chartGPU.TabIndex = 17;
chartGPU.Text = "chartGPU"; chartGPU.Text = "chartGPU";
title1.Name = "Title1"; title17.Name = "Title1";
chartGPU.Titles.Add(title1); chartGPU.Titles.Add(title17);
// //
// chartCPU // chartCPU
// //
chartArea2.Name = "ChartArea1"; chartArea18.Name = "ChartArea1";
chartCPU.ChartAreas.Add(chartArea2); chartCPU.ChartAreas.Add(chartArea18);
chartCPU.Dock = DockStyle.Fill; chartCPU.Dock = DockStyle.Fill;
chartCPU.Location = new Point(12, 10); chartCPU.Location = new Point(12, 10);
chartCPU.Margin = new Padding(2, 10, 2, 10); chartCPU.Margin = new Padding(2, 10, 2, 10);
@@ -274,13 +280,13 @@ namespace GHelper
chartCPU.Size = new Size(782, 463); chartCPU.Size = new Size(782, 463);
chartCPU.TabIndex = 14; chartCPU.TabIndex = 14;
chartCPU.Text = "chartCPU"; chartCPU.Text = "chartCPU";
title2.Name = "Title1"; title18.Name = "Title1";
chartCPU.Titles.Add(title2); chartCPU.Titles.Add(title18);
// //
// chartXGM // chartXGM
// //
chartArea3.Name = "ChartAreaXGM"; chartArea19.Name = "ChartAreaXGM";
chartXGM.ChartAreas.Add(chartArea3); chartXGM.ChartAreas.Add(chartArea19);
chartXGM.Dock = DockStyle.Fill; chartXGM.Dock = DockStyle.Fill;
chartXGM.Location = new Point(12, 1459); chartXGM.Location = new Point(12, 1459);
chartXGM.Margin = new Padding(2, 10, 2, 10); chartXGM.Margin = new Padding(2, 10, 2, 10);
@@ -288,14 +294,14 @@ namespace GHelper
chartXGM.Size = new Size(782, 463); chartXGM.Size = new Size(782, 463);
chartXGM.TabIndex = 14; chartXGM.TabIndex = 14;
chartXGM.Text = "chartXGM"; chartXGM.Text = "chartXGM";
title3.Name = "Title4"; title19.Name = "Title4";
chartXGM.Titles.Add(title3); chartXGM.Titles.Add(title19);
chartXGM.Visible = false; chartXGM.Visible = false;
// //
// chartMid // chartMid
// //
chartArea4.Name = "ChartArea3"; chartArea20.Name = "ChartArea3";
chartMid.ChartAreas.Add(chartArea4); chartMid.ChartAreas.Add(chartArea20);
chartMid.Dock = DockStyle.Fill; chartMid.Dock = DockStyle.Fill;
chartMid.Location = new Point(12, 976); chartMid.Location = new Point(12, 976);
chartMid.Margin = new Padding(2, 10, 2, 10); chartMid.Margin = new Padding(2, 10, 2, 10);
@@ -303,8 +309,8 @@ namespace GHelper
chartMid.Size = new Size(782, 463); chartMid.Size = new Size(782, 463);
chartMid.TabIndex = 14; chartMid.TabIndex = 14;
chartMid.Text = "chartMid"; chartMid.Text = "chartMid";
title4.Name = "Title3"; title20.Name = "Title3";
chartMid.Titles.Add(title4); chartMid.Titles.Add(title20);
chartMid.Visible = false; chartMid.Visible = false;
// //
// panelTitleFans // panelTitleFans
@@ -523,7 +529,7 @@ namespace GHelper
panelAdvanced.Controls.Add(panelTemperature); panelAdvanced.Controls.Add(panelTemperature);
panelAdvanced.Controls.Add(panelTitleTemp); panelAdvanced.Controls.Add(panelTitleTemp);
panelAdvanced.Dock = DockStyle.Top; panelAdvanced.Dock = DockStyle.Top;
panelAdvanced.Location = new Point(10, 1520); panelAdvanced.Location = new Point(10, 1644);
panelAdvanced.Name = "panelAdvanced"; panelAdvanced.Name = "panelAdvanced";
panelAdvanced.Size = new Size(520, 888); panelAdvanced.Size = new Size(520, 888);
panelAdvanced.TabIndex = 14; panelAdvanced.TabIndex = 14;
@@ -814,6 +820,7 @@ namespace GHelper
panelPower.Controls.Add(panelApplyPower); panelPower.Controls.Add(panelApplyPower);
panelPower.Controls.Add(panelB0); panelPower.Controls.Add(panelB0);
panelPower.Controls.Add(panelC1); panelPower.Controls.Add(panelC1);
panelPower.Controls.Add(panelA3);
panelPower.Controls.Add(panelA0); panelPower.Controls.Add(panelA0);
panelPower.Controls.Add(panelTitleCPU); panelPower.Controls.Add(panelTitleCPU);
panelPower.Controls.Add(panelBoost); panelPower.Controls.Add(panelBoost);
@@ -824,7 +831,7 @@ namespace GHelper
panelPower.Location = new Point(10, 764); panelPower.Location = new Point(10, 764);
panelPower.Margin = new Padding(4); panelPower.Margin = new Padding(4);
panelPower.Name = "panelPower"; panelPower.Name = "panelPower";
panelPower.Size = new Size(520, 756); panelPower.Size = new Size(520, 880);
panelPower.TabIndex = 43; panelPower.TabIndex = 43;
// //
// panelApplyPower // panelApplyPower
@@ -832,7 +839,7 @@ namespace GHelper
panelApplyPower.AutoSize = true; panelApplyPower.AutoSize = true;
panelApplyPower.Controls.Add(checkApplyPower); panelApplyPower.Controls.Add(checkApplyPower);
panelApplyPower.Dock = DockStyle.Top; panelApplyPower.Dock = DockStyle.Top;
panelApplyPower.Location = new Point(0, 680); panelApplyPower.Location = new Point(0, 804);
panelApplyPower.Name = "panelApplyPower"; panelApplyPower.Name = "panelApplyPower";
panelApplyPower.Padding = new Padding(15); panelApplyPower.Padding = new Padding(15);
panelApplyPower.Size = new Size(520, 76); panelApplyPower.Size = new Size(520, 76);
@@ -859,7 +866,7 @@ namespace GHelper
panelB0.Controls.Add(labelLeftB0); panelB0.Controls.Add(labelLeftB0);
panelB0.Controls.Add(trackB0); panelB0.Controls.Add(trackB0);
panelB0.Dock = DockStyle.Top; panelB0.Dock = DockStyle.Top;
panelB0.Location = new Point(0, 556); panelB0.Location = new Point(0, 680);
panelB0.Margin = new Padding(4); panelB0.Margin = new Padding(4);
panelB0.MaximumSize = new Size(0, 124); panelB0.MaximumSize = new Size(0, 124);
panelB0.Name = "panelB0"; panelB0.Name = "panelB0";
@@ -908,7 +915,7 @@ namespace GHelper
panelC1.Controls.Add(labelLeftC1); panelC1.Controls.Add(labelLeftC1);
panelC1.Controls.Add(trackC1); panelC1.Controls.Add(trackC1);
panelC1.Dock = DockStyle.Top; panelC1.Dock = DockStyle.Top;
panelC1.Location = new Point(0, 432); panelC1.Location = new Point(0, 556);
panelC1.Margin = new Padding(4); panelC1.Margin = new Padding(4);
panelC1.MaximumSize = new Size(0, 124); panelC1.MaximumSize = new Size(0, 124);
panelC1.Name = "panelC1"; panelC1.Name = "panelC1";
@@ -972,7 +979,7 @@ namespace GHelper
labelA0.Name = "labelA0"; labelA0.Name = "labelA0";
labelA0.Size = new Size(116, 32); labelA0.Size = new Size(116, 32);
labelA0.TabIndex = 12; labelA0.TabIndex = 12;
labelA0.Text = "SPPT"; labelA0.Text = "SPL";
labelA0.TextAlign = ContentAlignment.TopRight; labelA0.TextAlign = ContentAlignment.TopRight;
// //
// labelLeftA0 // labelLeftA0
@@ -981,9 +988,9 @@ namespace GHelper
labelLeftA0.Location = new Point(10, 10); labelLeftA0.Location = new Point(10, 10);
labelLeftA0.Margin = new Padding(4, 0, 4, 0); labelLeftA0.Margin = new Padding(4, 0, 4, 0);
labelLeftA0.Name = "labelLeftA0"; labelLeftA0.Name = "labelLeftA0";
labelLeftA0.Size = new Size(66, 32); labelLeftA0.Size = new Size(51, 32);
labelLeftA0.TabIndex = 11; labelLeftA0.TabIndex = 11;
labelLeftA0.Text = "SPPT"; labelLeftA0.Text = "SPL";
// //
// trackA0 // trackA0
// //
@@ -1527,6 +1534,55 @@ namespace GHelper
buttonCPU.TextImageRelation = TextImageRelation.ImageBeforeText; buttonCPU.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonCPU.UseVisualStyleBackColor = false; buttonCPU.UseVisualStyleBackColor = false;
// //
// panelA3
//
panelA3.AutoSize = true;
panelA3.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelA3.Controls.Add(labelA3);
panelA3.Controls.Add(labelLeftA3);
panelA3.Controls.Add(trackA3);
panelA3.Dock = DockStyle.Top;
panelA3.Location = new Point(0, 432);
panelA3.Margin = new Padding(4);
panelA3.MaximumSize = new Size(0, 124);
panelA3.Name = "panelA3";
panelA3.Size = new Size(520, 124);
panelA3.TabIndex = 51;
//
// labelA3
//
labelA3.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelA3.Location = new Point(396, 10);
labelA3.Margin = new Padding(4, 0, 4, 0);
labelA3.Name = "labelA3";
labelA3.Size = new Size(116, 32);
labelA3.TabIndex = 12;
labelA3.Text = "SPPT";
labelA3.TextAlign = ContentAlignment.TopRight;
//
// labelLeftA3
//
labelLeftA3.AutoSize = true;
labelLeftA3.Location = new Point(10, 10);
labelLeftA3.Margin = new Padding(4, 0, 4, 0);
labelLeftA3.Name = "labelLeftA3";
labelLeftA3.Size = new Size(66, 32);
labelLeftA3.TabIndex = 11;
labelLeftA3.Text = "SPPT";
//
// trackA3
//
trackA3.Location = new Point(6, 48);
trackA3.Margin = new Padding(4, 2, 4, 2);
trackA3.Maximum = 180;
trackA3.Minimum = 10;
trackA3.Name = "trackA3";
trackA3.Size = new Size(508, 90);
trackA3.TabIndex = 10;
trackA3.TickFrequency = 5;
trackA3.TickStyle = TickStyle.TopLeft;
trackA3.Value = 125;
//
// Fans // Fans
// //
AutoScaleDimensions = new SizeF(192F, 192F); AutoScaleDimensions = new SizeF(192F, 192F);
@@ -1623,6 +1679,9 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit();
panelNav.ResumeLayout(false); panelNav.ResumeLayout(false);
tableNav.ResumeLayout(false); tableNav.ResumeLayout(false);
panelA3.ResumeLayout(false);
panelA3.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackA3).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@@ -1730,5 +1789,9 @@ namespace GHelper
private TrackBar trackGPUClockLimit; private TrackBar trackGPUClockLimit;
private Label labelGPUClockLimitTitle; private Label labelGPUClockLimitTitle;
private RButton buttonCalibrate; private RButton buttonCalibrate;
private Panel panelA3;
private Label labelA3;
private Label labelLeftA3;
private TrackBar trackA3;
} }
} }

View File

@@ -106,6 +106,9 @@ namespace GHelper
trackA0.Maximum = AsusACPI.MaxTotal; trackA0.Maximum = AsusACPI.MaxTotal;
trackA0.Minimum = AsusACPI.MinTotal; trackA0.Minimum = AsusACPI.MinTotal;
trackA3.Maximum = AsusACPI.MaxTotal;
trackA3.Minimum = AsusACPI.MinTotal;
trackB0.Maximum = AsusACPI.MaxCPU; trackB0.Maximum = AsusACPI.MaxCPU;
trackB0.Minimum = AsusACPI.MinCPU; trackB0.Minimum = AsusACPI.MinCPU;
@@ -115,10 +118,12 @@ namespace GHelper
trackC1.Scroll += TrackPower_Scroll; trackC1.Scroll += TrackPower_Scroll;
trackB0.Scroll += TrackPower_Scroll; trackB0.Scroll += TrackPower_Scroll;
trackA0.Scroll += TrackPower_Scroll; trackA0.Scroll += TrackPower_Scroll;
trackA3.Scroll += TrackPower_Scroll;
trackC1.MouseUp += TrackPower_MouseUp; trackC1.MouseUp += TrackPower_MouseUp;
trackB0.MouseUp += TrackPower_MouseUp; trackB0.MouseUp += TrackPower_MouseUp;
trackA0.MouseUp += TrackPower_MouseUp; trackA0.MouseUp += TrackPower_MouseUp;
trackA3.MouseUp += TrackPower_MouseUp;
checkApplyFans.Click += CheckApplyFans_Click; checkApplyFans.Click += CheckApplyFans_Click;
checkApplyPower.Click += CheckApplyPower_Click; checkApplyPower.Click += CheckApplyPower_Click;
@@ -800,19 +805,28 @@ namespace GHelper
labelLeftA0.Text = "Platform (CPU + GPU)"; labelLeftA0.Text = "Platform (CPU + GPU)";
labelLeftB0.Text = "CPU"; labelLeftB0.Text = "CPU";
panelC1.Visible = false; panelC1.Visible = false;
panelA3.Visible = false;
} }
else else
{ {
if (RyzenControl.IsAMD()) if (RyzenControl.IsAMD())
labelLeftA0.Text = "CPU Slow (SPL + sPPT)"; {
labelLeftA0.Text = "CPU Sustained (SPL)";
labelLeftA3.Text = "CPU Slow (sPPT)";
labelLeftC1.Text = "CPU Fast (fPPT)";
panelC1.Visible = modeC1;
}
else else
labelLeftA0.Text = "CPU (PL1 + PL2)"; {
labelLeftA0.Text = "CPU Slow (PL1)";
labelLeftA3.Text = "CPU Fast (PL2)";
panelC1.Visible = false;
}
labelLeftC1.Text = "CPU Fast (fPPT)";
panelC1.Visible = modeC1;
} }
int limit_total; int limit_total;
int limit_slow;
int limit_cpu; int limit_cpu;
int limit_fast; int limit_fast;
@@ -821,12 +835,14 @@ namespace GHelper
if (changed) if (changed)
{ {
limit_total = trackA0.Value; limit_total = trackA0.Value;
limit_slow = trackA3.Value;
limit_cpu = trackB0.Value; limit_cpu = trackB0.Value;
limit_fast = trackC1.Value; limit_fast = trackC1.Value;
} }
else else
{ {
limit_total = AppConfig.GetMode("limit_total"); limit_total = AppConfig.GetMode("limit_total");
limit_slow = AppConfig.GetMode("limit_slow");
limit_cpu = AppConfig.GetMode("limit_cpu"); limit_cpu = AppConfig.GetMode("limit_cpu");
limit_fast = AppConfig.GetMode("limit_fast"); limit_fast = AppConfig.GetMode("limit_fast");
} }
@@ -840,21 +856,28 @@ namespace GHelper
if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU; if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU;
if (limit_cpu > limit_total) limit_cpu = limit_total; if (limit_cpu > limit_total) limit_cpu = limit_total;
if (limit_slow < 0) limit_slow = limit_total;
if (limit_slow > AsusACPI.MaxTotal) limit_slow = AsusACPI.MaxTotal;
if (limit_slow < AsusACPI.MinTotal) limit_slow = AsusACPI.MinTotal;
if (limit_fast < 0) limit_fast = AsusACPI.DefaultTotal; if (limit_fast < 0) limit_fast = AsusACPI.DefaultTotal;
if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal; if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal;
if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal; if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal;
trackA0.Value = limit_total; trackA0.Value = limit_total;
trackA3.Value = limit_slow;
trackB0.Value = limit_cpu; trackB0.Value = limit_cpu;
trackC1.Value = limit_fast; trackC1.Value = limit_fast;
checkApplyPower.Checked = apply; checkApplyPower.Checked = apply;
labelA0.Text = trackA0.Value.ToString() + "W"; labelA0.Text = trackA0.Value.ToString() + "W";
labelA3.Text = trackA3.Value.ToString() + "W";
labelB0.Text = trackB0.Value.ToString() + "W"; labelB0.Text = trackB0.Value.ToString() + "W";
labelC1.Text = trackC1.Value.ToString() + "W"; labelC1.Text = trackC1.Value.ToString() + "W";
AppConfig.SetMode("limit_total", limit_total); AppConfig.SetMode("limit_total", limit_total);
AppConfig.SetMode("limit_slow", limit_slow);
AppConfig.SetMode("limit_cpu", limit_cpu); AppConfig.SetMode("limit_cpu", limit_cpu);
AppConfig.SetMode("limit_fast", limit_fast); AppConfig.SetMode("limit_fast", limit_fast);

View File

@@ -239,10 +239,15 @@ namespace GHelper.Mode
public void SetPower(bool launchAsAdmin = false) public void SetPower(bool launchAsAdmin = false)
{ {
bool allAMD = Program.acpi.IsAllAmdPPT();
int limit_total = AppConfig.GetMode("limit_total"); int limit_total = AppConfig.GetMode("limit_total");
int limit_cpu = AppConfig.GetMode("limit_cpu"); int limit_cpu = AppConfig.GetMode("limit_cpu");
int limit_slow = AppConfig.GetMode("limit_slow");
int limit_fast = AppConfig.GetMode("limit_fast"); int limit_fast = AppConfig.GetMode("limit_fast");
if (limit_slow < 0 || allAMD) limit_slow = limit_total;
if (limit_total > AsusACPI.MaxTotal) return; if (limit_total > AsusACPI.MaxTotal) return;
if (limit_total < AsusACPI.MinTotal) return; if (limit_total < AsusACPI.MinTotal) return;
@@ -252,11 +257,14 @@ namespace GHelper.Mode
if (limit_fast > AsusACPI.MaxTotal) return; if (limit_fast > AsusACPI.MaxTotal) return;
if (limit_fast < AsusACPI.MinTotal) return; if (limit_fast < AsusACPI.MinTotal) return;
// SPL + SPPT togeher in one slider if (limit_slow > AsusACPI.MaxTotal) return;
if (limit_slow < AsusACPI.MinTotal) return;
// SPL and SPPT
if (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0) if (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0)
{ {
Program.acpi.DeviceSet(AsusACPI.PPT_TotalA0, limit_total, "PowerLimit A0"); Program.acpi.DeviceSet(AsusACPI.PPT_TotalA0, limit_total, "PowerLimit A0");
Program.acpi.DeviceSet(AsusACPI.PPT_APUA3, limit_total, "PowerLimit A3"); Program.acpi.DeviceSet(AsusACPI.PPT_APUA3, limit_slow, "PowerLimit A3");
customPower = limit_total; customPower = limit_total;
} }
else if (RyzenControl.IsAMD()) else if (RyzenControl.IsAMD())

View File

@@ -39,9 +39,9 @@
"mode_base", "mode_base",
"mode_name", "mode_name",
"limit_total", "limit_total",
"limit_slow",
"limit_fast", "limit_fast",
"limit_cpu", "limit_cpu",
"limit_total",
"fan_profile_cpu", "fan_profile_cpu",
"fan_profile_gpu", "fan_profile_gpu",
"fan_profile_mid", "fan_profile_mid",