From fce9cddd02b9ed925aa3e598ffec140ed2882852 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Sun, 3 Sep 2023 15:53:43 +0200 Subject: [PATCH] XGM for devices without dGPU https://github.com/seerge/g-helper/issues/1235 --- app/AppConfig.cs | 6 ++++++ app/Gpu/GPUModeControl.cs | 9 --------- app/Settings.cs | 21 ++++++++++++++++----- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/AppConfig.cs b/app/AppConfig.cs index 05f7e068..0ef18dc5 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -380,4 +380,10 @@ public static class AppConfig { return Is("gpu_mode_force_set") || ContainsModel("503"); } + + public static bool IsNoGPUModes() + { + return ContainsModel("GV301RA"); + } + } diff --git a/app/Gpu/GPUModeControl.cs b/app/Gpu/GPUModeControl.cs index 6db187ef..18c3ebf2 100644 --- a/app/Gpu/GPUModeControl.cs +++ b/app/Gpu/GPUModeControl.cs @@ -52,8 +52,6 @@ namespace GHelper.Gpu } AppConfig.Set("gpu_mode", gpuMode); - - InitXGM(); settings.VisualiseGPUMode(gpuMode); AsusUSB.ApplyGPUColor(); @@ -278,13 +276,6 @@ namespace GHelper.Gpu } - public void InitXGM() - { - bool connected = Program.acpi.IsXGConnected(); - int activated = Program.acpi.DeviceGet(AsusACPI.GPUXG); - settings.VisualizeXGM(connected, activated == 1); - } - public void ToggleXGM() { diff --git a/app/Settings.cs b/app/Settings.cs index 1a1947b8..abe4ffce 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -244,7 +244,8 @@ namespace GHelper if (this.Visible) { screenControl.InitScreen(); - gpuControl.InitXGM(); + VisualizeXGM(); + Task.Run((Action)RefreshPeripheralsBattery); updateControl.CheckForUpdates(); } @@ -966,15 +967,24 @@ namespace GHelper } - public void VisualizeXGM(bool connected, bool activated) + public void VisualizeXGM(int GPUMode = -1) { + bool connected = Program.acpi.IsXGConnected(); buttonXGM.Enabled = buttonXGM.Visible = connected; + if (!connected) return; - buttonXGM.Activated = activated; + if (GPUMode != -1) + ButtonEnabled(buttonXGM, AppConfig.IsNoGPUModes() || GPUMode != AsusACPI.GPUModeEco); - if (activated) + + int activated = Program.acpi.DeviceGet(AsusACPI.GPUXG); + Logger.WriteLine("XGM Activated flag: " + activated); + + buttonXGM.Activated = activated == 1; + + if (activated == 1) { ButtonEnabled(buttonOptimized, false); ButtonEnabled(buttonEco, false); @@ -1074,7 +1084,8 @@ namespace GHelper break; } - ButtonEnabled(buttonXGM, AppConfig.ContainsModel("GV301RA") || GPUMode != AsusACPI.GPUModeEco); + VisualizeXGM(GPUMode); + if (isGpuSection) {