GPU eco check

This commit is contained in:
Serge
2023-05-09 16:13:35 +02:00
parent 07020c3561
commit ac19a822f7
2 changed files with 26 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
using System.Management; using GHelper;
using System.Management;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
public class ASUSWmi public class ASUSWmi
@@ -218,6 +219,20 @@ public class ASUSWmi
return CallMethod(DSTS, args); return CallMethod(DSTS, args);
} }
public int SetGPUEco(int eco)
{
int ecoFlag = DeviceGet(GPUEco);
if (ecoFlag < 0) return -1;
if (ecoFlag == 1 && eco == 0)
return DeviceSet(GPUEco, eco, "GPUEco");
if (ecoFlag == 0 && eco == 1)
return DeviceSet(GPUEco, eco, "GPUEco");
return -1;
}
public int SetFanCurve(int device, byte[] curve) public int SetFanCurve(int device, byte[] curve)
{ {

View File

@@ -1313,7 +1313,7 @@ namespace GHelper
if (eco == 1) if (eco == 1)
if ((GpuAuto && IsPlugged()) || (ForceGPU && GpuMode == ASUSWmi.GPUModeStandard)) if ((GpuAuto && IsPlugged()) || (ForceGPU && GpuMode == ASUSWmi.GPUModeStandard))
{ {
SetEcoGPU(0); SetGPUEco(0);
return true; return true;
} }
if (eco == 0) if (eco == 0)
@@ -1326,7 +1326,7 @@ namespace GHelper
if (dialogResult == DialogResult.No) return false; if (dialogResult == DialogResult.No) return false;
} }
SetEcoGPU(1); SetGPUEco(1);
return true; return true;
} }
} }
@@ -1337,15 +1337,16 @@ namespace GHelper
public bool ReEnableGPU() public bool ReEnableGPU()
{ {
if (Screen.AllScreens.Length <= 1) return false;
if (Program.config.getConfig("gpu_reenable") != 1) return false; if (Program.config.getConfig("gpu_reenable") != 1) return false;
if (Screen.AllScreens.Length <= 1) return false;
Logger.WriteLine("Re-enabling gpu for 503 model"); Logger.WriteLine("Re-enabling gpu for 503 model");
Thread.Sleep(1000); Thread.Sleep(1000);
SetEcoGPU(1); SetGPUEco(1);
Thread.Sleep(1000); Thread.Sleep(1000);
SetEcoGPU(0); SetGPUEco(0);
return true; return true;
} }
@@ -1414,7 +1415,7 @@ namespace GHelper
} }
public void SetEcoGPU(int eco) public void SetGPUEco(int eco)
{ {
ButtonEnabled(buttonOptimized, false); ButtonEnabled(buttonOptimized, false);
@@ -1435,7 +1436,7 @@ namespace GHelper
foreach (var process in Process.GetProcessesByName(kill)) process.Kill(); foreach (var process in Process.GetProcessesByName(kill)) process.Kill();
} }
Program.wmi.DeviceSet(ASUSWmi.GPUEco, eco, "GPUEco"); Program.wmi.SetGPUEco(eco);
if (eco == 0) if (eco == 0)
HardwareControl.RecreateGpuControlWithDelay(); HardwareControl.RecreateGpuControlWithDelay();
@@ -1491,13 +1492,13 @@ namespace GHelper
else if (GPUMode == ASUSWmi.GPUModeEco) else if (GPUMode == ASUSWmi.GPUModeEco)
{ {
VisualiseGPUMode(GPUMode); VisualiseGPUMode(GPUMode);
SetEcoGPU(1); SetGPUEco(1);
changed = true; changed = true;
} }
else if (GPUMode == ASUSWmi.GPUModeStandard) else if (GPUMode == ASUSWmi.GPUModeStandard)
{ {
VisualiseGPUMode(GPUMode); VisualiseGPUMode(GPUMode);
SetEcoGPU(0); SetGPUEco(0);
changed = true; changed = true;
} }