Set Balanced plan by default

This commit is contained in:
Serge
2023-08-11 22:37:14 +02:00
parent 130d9b73fb
commit c491087a29
2 changed files with 47 additions and 29 deletions

View File

@@ -279,6 +279,8 @@ namespace GHelper.Mode
} }
public void SetGPUClocks(bool launchAsAdmin = true) public void SetGPUClocks(bool launchAsAdmin = true)
{
Task.Run(() =>
{ {
int gpu_core = AppConfig.GetMode("gpu_core"); int gpu_core = AppConfig.GetMode("gpu_core");
@@ -309,6 +311,7 @@ namespace GHelper.Mode
{ {
Logger.WriteLine(ex.ToString()); Logger.WriteLine(ex.ToString());
} }
});
} }
public void SetGPUPower() public void SetGPUPower()

View File

@@ -72,7 +72,12 @@ namespace GHelper.Mode
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerSetActiveOverlayScheme")] [DllImportAttribute("powrprof.dll", EntryPoint = "PowerSetActiveOverlayScheme")]
public static extern uint PowerSetActiveOverlayScheme(Guid OverlaySchemeGuid); public static extern uint PowerSetActiveOverlayScheme(Guid OverlaySchemeGuid);
public static Dictionary<string, string> powerModes = new Dictionary<string, string>
{
{ "961cc777-2547-4f9d-8174-7d86181b8a7a", "Best Power Efficiency" },
{ "00000000-0000-0000-0000-000000000000", "Balanced" },
{ "ded574b5-45a0-4f42-8737-46345c09c238", "Best Performance" },
};
static Guid GetActiveScheme() static Guid GetActiveScheme()
{ {
IntPtr pActiveSchemeGuid; IntPtr pActiveSchemeGuid;
@@ -135,17 +140,27 @@ namespace GHelper.Mode
if (overlays.Contains(scheme)) if (overlays.Contains(scheme))
{ {
Guid activeSchemeGuid = GetActiveScheme();
Guid balanced = new Guid("381b4222-f694-41f0-9685-ff5bb260df2e");
if (activeSchemeGuid != balanced && !AppConfig.Is("skip_power_plan"))
{
PowerSetActiveScheme(IntPtr.Zero, balanced);
Logger.WriteLine("Balanced Plan: " + balanced);
}
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme); uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
if (status != 0 || activeScheme != guidScheme) if (status != 0 || activeScheme != guidScheme)
{ {
PowerSetActiveOverlayScheme(guidScheme); PowerSetActiveOverlayScheme(guidScheme);
Logger.WriteLine("Power mode: " + scheme); Logger.WriteLine("Power Mode: " + scheme);
} }
} }
else else
{ {
PowerSetActiveScheme(IntPtr.Zero, guidScheme); PowerSetActiveScheme(IntPtr.Zero, guidScheme);
Logger.WriteLine("Power plan: " + scheme); Logger.WriteLine("Power Plan: " + scheme);
} }