diff --git a/app/AppConfig.cs b/app/AppConfig.cs index af699e70..cbad1d84 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -356,9 +356,14 @@ public static class AppConfig return ContainsModel("FX507") || ContainsModel("FX517") || ContainsModel("FX707"); } + public static bool IsGPUFixNeeded() + { + return ContainsModel("GA402X") || ContainsModel("GV302"); + } + public static bool IsGPUFix() { - return ContainsModel("GA402X") && (Get("gpu_fix") != 0); + return Is("gpu_fix") || (ContainsModel("GA402X") && IsNotFalse("gpu_fix")); } } diff --git a/app/AsusUSB.cs b/app/AsusUSB.cs index 866d0466..a4a77711 100644 --- a/app/AsusUSB.cs +++ b/app/AsusUSB.cs @@ -278,7 +278,7 @@ namespace GHelper } - public static byte[] AuraMessage(int mode, Color color, Color color2, int speed) + public static byte[] AuraMessage(int mode, Color color, Color color2, int speed, bool mono = false) { byte[] msg = new byte[17]; @@ -286,15 +286,15 @@ namespace GHelper msg[1] = 0xb3; msg[2] = 0x00; // Zone msg[3] = (byte)mode; // Aura Mode - msg[4] = (byte)(color.R); // R - msg[5] = (byte)(color.G); // G - msg[6] = (byte)(color.B); // B + msg[4] = color.R; // R + msg[5] = mono ? (byte)0 : color.G; // G + msg[6] = mono ? (byte)0 : color.B; // B msg[7] = (byte)speed; // aura.speed as u8; msg[8] = 0; // aura.direction as u8; msg[9] = (mode == 1) ? (byte)1 : (byte)0; - msg[10] = (byte)(color2.R); // R - msg[11] = (byte)(color2.G); // G - msg[12] = (byte)(color2.B); // B + msg[10] = color2.R; // R + msg[11] = mono ? (byte)0 : color2.G; // G + msg[12] = mono ? (byte)0 : color2.B; // B return msg; } @@ -530,7 +530,7 @@ namespace GHelper Mode = AppConfig.Get("aura_mode"); Speed = AppConfig.Get("aura_speed"); - SetColor(AppConfig.Get("aura_color")); + SetColor(AppConfig.Get("aura_color", Color.Red.ToArgb())); SetColor2(AppConfig.Get("aura_color2")); if (Mode == HEATMAP) @@ -563,7 +563,7 @@ namespace GHelper break; } - byte[] msg = AuraMessage(Mode, Color1, Color2, _speed); + byte[] msg; var devices = GetHidDevices(deviceIds); foreach (HidDevice device in devices) @@ -571,6 +571,7 @@ namespace GHelper device.OpenDevice(); if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) { + msg = AuraMessage(Mode, Color1, Color2, _speed, device.Attributes.Version == 22); device.WriteFeatureData(msg); device.WriteFeatureData(MESSAGE_APPLY); device.WriteFeatureData(MESSAGE_SET); diff --git a/app/Extra.cs b/app/Extra.cs index 40cb701b..6e10a72b 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -322,8 +322,8 @@ namespace GHelper pictureLog.Click += PictureLog_Click; - checkGPUFix.Visible = AppConfig.ContainsModel("GA402X"); - checkGPUFix.Checked = AppConfig.Get("gpu_fix") != 0; + checkGPUFix.Visible = AppConfig.IsGPUFixNeeded(); + checkGPUFix.Checked = AppConfig.IsGPUFix(); checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged; InitVariBright(); diff --git a/app/Gpu/GPUModeControl.cs b/app/Gpu/GPUModeControl.cs index 63ca6a8c..5ececff9 100644 --- a/app/Gpu/GPUModeControl.cs +++ b/app/Gpu/GPUModeControl.cs @@ -132,7 +132,7 @@ namespace GHelper.Gpu if (eco == 1) { - /* + if (NvidiaSmi.GetDisplayActiveStatus()) { DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo); @@ -142,7 +142,7 @@ namespace GHelper.Gpu return; } } - */ + HardwareControl.KillGPUApps(); } diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs index 97eb6003..d8f78ba1 100644 --- a/app/Properties/Strings.Designer.cs +++ b/app/Properties/Strings.Designer.cs @@ -1323,7 +1323,7 @@ namespace GHelper.Properties { } /// - /// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed at your own risk.. + /// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk). /// internal static string RestartGPU { get { diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx index b937a4a9..515dc409 100644 --- a/app/Properties/Strings.resx +++ b/app/Properties/Strings.resx @@ -540,7 +540,7 @@ Do you still want to continue? Quit - Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed at your own risk. + Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk) RPM diff --git a/app/Settings.cs b/app/Settings.cs index 673e3349..5a53f5aa 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -622,7 +622,7 @@ namespace GHelper { AsusUSB.Mode = AppConfig.Get("aura_mode"); AsusUSB.Speed = AppConfig.Get("aura_speed"); - AsusUSB.SetColor(AppConfig.Get("aura_color")); + AsusUSB.SetColor(AppConfig.Get("aura_color", Color.Red.ToArgb())); AsusUSB.SetColor2(AppConfig.Get("aura_color2")); comboKeyboard.DropDownStyle = ComboBoxStyle.DropDownList;