mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Eco mode GPU fix
This commit is contained in:
@@ -356,5 +356,9 @@ public static class AppConfig
|
|||||||
return ContainsModel("FX507") || ContainsModel("FX517") || ContainsModel("FX707");
|
return ContainsModel("FX507") || ContainsModel("FX517") || ContainsModel("FX707");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsGPUFix()
|
||||||
|
{
|
||||||
|
return ContainsModel("GA402X") && (Get("gpu_fix") != 0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
38
app/Extra.Designer.cs
generated
38
app/Extra.Designer.cs
generated
@@ -109,6 +109,7 @@ namespace GHelper
|
|||||||
checkUSBC = new CheckBox();
|
checkUSBC = new CheckBox();
|
||||||
checkVariBright = new CheckBox();
|
checkVariBright = new CheckBox();
|
||||||
checkGpuApps = new CheckBox();
|
checkGpuApps = new CheckBox();
|
||||||
|
checkGPUFix = new CheckBox();
|
||||||
checkFnLock = new CheckBox();
|
checkFnLock = new CheckBox();
|
||||||
panelPower = new Panel();
|
panelPower = new Panel();
|
||||||
numericHibernateAfter = new NumericUpDown();
|
numericHibernateAfter = new NumericUpDown();
|
||||||
@@ -146,7 +147,7 @@ namespace GHelper
|
|||||||
panelServices.Controls.Add(labelServices);
|
panelServices.Controls.Add(labelServices);
|
||||||
panelServices.Controls.Add(buttonServices);
|
panelServices.Controls.Add(buttonServices);
|
||||||
panelServices.Dock = DockStyle.Top;
|
panelServices.Dock = DockStyle.Top;
|
||||||
panelServices.Location = new Point(15, 1341);
|
panelServices.Location = new Point(15, 1383);
|
||||||
panelServices.Name = "panelServices";
|
panelServices.Name = "panelServices";
|
||||||
panelServices.Size = new Size(983, 75);
|
panelServices.Size = new Size(983, 75);
|
||||||
panelServices.TabIndex = 5;
|
panelServices.TabIndex = 5;
|
||||||
@@ -1068,19 +1069,20 @@ namespace GHelper
|
|||||||
panelSettings.Controls.Add(checkUSBC);
|
panelSettings.Controls.Add(checkUSBC);
|
||||||
panelSettings.Controls.Add(checkVariBright);
|
panelSettings.Controls.Add(checkVariBright);
|
||||||
panelSettings.Controls.Add(checkGpuApps);
|
panelSettings.Controls.Add(checkGpuApps);
|
||||||
|
panelSettings.Controls.Add(checkGPUFix);
|
||||||
panelSettings.Controls.Add(checkFnLock);
|
panelSettings.Controls.Add(checkFnLock);
|
||||||
panelSettings.Dock = DockStyle.Top;
|
panelSettings.Dock = DockStyle.Top;
|
||||||
panelSettings.Location = new Point(15, 921);
|
panelSettings.Location = new Point(15, 921);
|
||||||
panelSettings.Name = "panelSettings";
|
panelSettings.Name = "panelSettings";
|
||||||
panelSettings.Padding = new Padding(20, 5, 11, 5);
|
panelSettings.Padding = new Padding(20, 5, 11, 5);
|
||||||
panelSettings.Size = new Size(983, 346);
|
panelSettings.Size = new Size(983, 388);
|
||||||
panelSettings.TabIndex = 3;
|
panelSettings.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// checkAutoToggleClamshellMode
|
// checkAutoToggleClamshellMode
|
||||||
//
|
//
|
||||||
checkAutoToggleClamshellMode.AutoSize = true;
|
checkAutoToggleClamshellMode.AutoSize = true;
|
||||||
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
|
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
|
||||||
checkAutoToggleClamshellMode.Location = new Point(20, 299);
|
checkAutoToggleClamshellMode.Location = new Point(20, 341);
|
||||||
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
|
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
|
||||||
checkAutoToggleClamshellMode.Padding = new Padding(3);
|
checkAutoToggleClamshellMode.Padding = new Padding(3);
|
||||||
checkAutoToggleClamshellMode.Size = new Size(952, 42);
|
checkAutoToggleClamshellMode.Size = new Size(952, 42);
|
||||||
@@ -1092,7 +1094,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
||||||
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
||||||
checkAutoApplyWindowsPowerMode.Location = new Point(20, 257);
|
checkAutoApplyWindowsPowerMode.Location = new Point(20, 299);
|
||||||
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 3, 4, 3);
|
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
||||||
checkAutoApplyWindowsPowerMode.Padding = new Padding(3);
|
checkAutoApplyWindowsPowerMode.Padding = new Padding(3);
|
||||||
@@ -1105,7 +1107,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkTopmost.AutoSize = true;
|
checkTopmost.AutoSize = true;
|
||||||
checkTopmost.Dock = DockStyle.Top;
|
checkTopmost.Dock = DockStyle.Top;
|
||||||
checkTopmost.Location = new Point(20, 215);
|
checkTopmost.Location = new Point(20, 257);
|
||||||
checkTopmost.Margin = new Padding(4, 3, 4, 3);
|
checkTopmost.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkTopmost.Name = "checkTopmost";
|
checkTopmost.Name = "checkTopmost";
|
||||||
checkTopmost.Padding = new Padding(3);
|
checkTopmost.Padding = new Padding(3);
|
||||||
@@ -1118,7 +1120,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkNoOverdrive.AutoSize = true;
|
checkNoOverdrive.AutoSize = true;
|
||||||
checkNoOverdrive.Dock = DockStyle.Top;
|
checkNoOverdrive.Dock = DockStyle.Top;
|
||||||
checkNoOverdrive.Location = new Point(20, 173);
|
checkNoOverdrive.Location = new Point(20, 215);
|
||||||
checkNoOverdrive.Margin = new Padding(4, 3, 4, 3);
|
checkNoOverdrive.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkNoOverdrive.Name = "checkNoOverdrive";
|
checkNoOverdrive.Name = "checkNoOverdrive";
|
||||||
checkNoOverdrive.Padding = new Padding(3);
|
checkNoOverdrive.Padding = new Padding(3);
|
||||||
@@ -1131,7 +1133,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkUSBC.AutoSize = true;
|
checkUSBC.AutoSize = true;
|
||||||
checkUSBC.Dock = DockStyle.Top;
|
checkUSBC.Dock = DockStyle.Top;
|
||||||
checkUSBC.Location = new Point(20, 131);
|
checkUSBC.Location = new Point(20, 173);
|
||||||
checkUSBC.Margin = new Padding(4, 3, 4, 3);
|
checkUSBC.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkUSBC.Name = "checkUSBC";
|
checkUSBC.Name = "checkUSBC";
|
||||||
checkUSBC.Padding = new Padding(3);
|
checkUSBC.Padding = new Padding(3);
|
||||||
@@ -1144,7 +1146,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkVariBright.AutoSize = true;
|
checkVariBright.AutoSize = true;
|
||||||
checkVariBright.Dock = DockStyle.Top;
|
checkVariBright.Dock = DockStyle.Top;
|
||||||
checkVariBright.Location = new Point(20, 89);
|
checkVariBright.Location = new Point(20, 131);
|
||||||
checkVariBright.Margin = new Padding(4, 3, 4, 3);
|
checkVariBright.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkVariBright.Name = "checkVariBright";
|
checkVariBright.Name = "checkVariBright";
|
||||||
checkVariBright.Padding = new Padding(3);
|
checkVariBright.Padding = new Padding(3);
|
||||||
@@ -1157,7 +1159,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
checkGpuApps.AutoSize = true;
|
checkGpuApps.AutoSize = true;
|
||||||
checkGpuApps.Dock = DockStyle.Top;
|
checkGpuApps.Dock = DockStyle.Top;
|
||||||
checkGpuApps.Location = new Point(20, 47);
|
checkGpuApps.Location = new Point(20, 89);
|
||||||
checkGpuApps.Margin = new Padding(4, 3, 4, 3);
|
checkGpuApps.Margin = new Padding(4, 3, 4, 3);
|
||||||
checkGpuApps.Name = "checkGpuApps";
|
checkGpuApps.Name = "checkGpuApps";
|
||||||
checkGpuApps.Padding = new Padding(3);
|
checkGpuApps.Padding = new Padding(3);
|
||||||
@@ -1166,6 +1168,19 @@ namespace GHelper
|
|||||||
checkGpuApps.Text = "Stop all apps using GPU when switching to Eco";
|
checkGpuApps.Text = "Stop all apps using GPU when switching to Eco";
|
||||||
checkGpuApps.UseVisualStyleBackColor = true;
|
checkGpuApps.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// checkGPUFix
|
||||||
|
//
|
||||||
|
checkGPUFix.AutoSize = true;
|
||||||
|
checkGPUFix.Dock = DockStyle.Top;
|
||||||
|
checkGPUFix.Location = new Point(20, 47);
|
||||||
|
checkGPUFix.Margin = new Padding(4, 3, 4, 3);
|
||||||
|
checkGPUFix.Name = "checkGPUFix";
|
||||||
|
checkGPUFix.Padding = new Padding(3);
|
||||||
|
checkGPUFix.Size = new Size(952, 42);
|
||||||
|
checkGPUFix.TabIndex = 9;
|
||||||
|
checkGPUFix.Text = "Enable GPU on shutdown (prevents issue with Eco mode)";
|
||||||
|
checkGPUFix.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// checkFnLock
|
// checkFnLock
|
||||||
//
|
//
|
||||||
checkFnLock.AutoSize = true;
|
checkFnLock.AutoSize = true;
|
||||||
@@ -1186,7 +1201,7 @@ namespace GHelper
|
|||||||
panelPower.Controls.Add(labelHibernateAfter);
|
panelPower.Controls.Add(labelHibernateAfter);
|
||||||
panelPower.Controls.Add(pictureHibernate);
|
panelPower.Controls.Add(pictureHibernate);
|
||||||
panelPower.Dock = DockStyle.Top;
|
panelPower.Dock = DockStyle.Top;
|
||||||
panelPower.Location = new Point(15, 1267);
|
panelPower.Location = new Point(15, 1309);
|
||||||
panelPower.Name = "panelPower";
|
panelPower.Name = "panelPower";
|
||||||
panelPower.Size = new Size(983, 74);
|
panelPower.Size = new Size(983, 74);
|
||||||
panelPower.TabIndex = 4;
|
panelPower.TabIndex = 4;
|
||||||
@@ -1229,7 +1244,7 @@ namespace GHelper
|
|||||||
AutoScaleMode = AutoScaleMode.Dpi;
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(1013, 1431);
|
ClientSize = new Size(1013, 1467);
|
||||||
Controls.Add(panelServices);
|
Controls.Add(panelServices);
|
||||||
Controls.Add(panelPower);
|
Controls.Add(panelPower);
|
||||||
Controls.Add(panelSettings);
|
Controls.Add(panelSettings);
|
||||||
@@ -1370,5 +1385,6 @@ namespace GHelper
|
|||||||
private PictureBox pictureHibernate;
|
private PictureBox pictureHibernate;
|
||||||
private Label labelHibernateAfter;
|
private Label labelHibernateAfter;
|
||||||
private NumericUpDown numericHibernateAfter;
|
private NumericUpDown numericHibernateAfter;
|
||||||
|
private CheckBox checkGPUFix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -322,11 +322,20 @@ namespace GHelper
|
|||||||
|
|
||||||
pictureLog.Click += PictureLog_Click;
|
pictureLog.Click += PictureLog_Click;
|
||||||
|
|
||||||
|
checkGPUFix.Visible = AppConfig.ContainsModel("GA402X");
|
||||||
|
checkGPUFix.Checked = AppConfig.Get("gpu_fix") != 0;
|
||||||
|
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
|
||||||
|
|
||||||
InitVariBright();
|
InitVariBright();
|
||||||
InitServices();
|
InitServices();
|
||||||
InitHibernate();
|
InitHibernate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CheckGPUFix_CheckedChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("gpu_fix", (checkGPUFix.Checked ? 1 : 0));
|
||||||
|
}
|
||||||
|
|
||||||
private void InitHibernate()
|
private void InitHibernate()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ namespace GHelper.Gpu
|
|||||||
|
|
||||||
if (eco == 1)
|
if (eco == 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
if (NvidiaSmi.GetDisplayActiveStatus())
|
if (NvidiaSmi.GetDisplayActiveStatus())
|
||||||
{
|
{
|
||||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo);
|
DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo);
|
||||||
@@ -140,6 +142,7 @@ namespace GHelper.Gpu
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
HardwareControl.KillGPUApps();
|
HardwareControl.KillGPUApps();
|
||||||
}
|
}
|
||||||
@@ -321,7 +324,7 @@ namespace GHelper.Gpu
|
|||||||
// https://github.com/seerge/g-helper/pull/855
|
// https://github.com/seerge/g-helper/pull/855
|
||||||
public void StandardModeFix()
|
public void StandardModeFix()
|
||||||
{
|
{
|
||||||
if (!AppConfig.Is("gpu_fix")) return; // No config entry
|
if (!AppConfig.IsGPUFix()) return; // No config entry
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.GPUMux) == 0) return; // Ultimate mode
|
if (Program.acpi.DeviceGet(AsusACPI.GPUMux) == 0) return; // Ultimate mode
|
||||||
|
|
||||||
Logger.WriteLine("Forcing Standard Mode on shutdown / hibernation");
|
Logger.WriteLine("Forcing Standard Mode on shutdown / hibernation");
|
||||||
|
|||||||
Reference in New Issue
Block a user