From 3d5c0d5adec33524c7169a5aa77c5a703fb0501c Mon Sep 17 00:00:00 2001
From: Serge <5920850+seerge@users.noreply.github.com>
Date: Thu, 10 Aug 2023 23:39:45 +0200
Subject: [PATCH] GPU tweaks
---
app/AppConfig.cs | 7 ++++++-
app/AsusUSB.cs | 19 ++++++++++---------
app/Extra.cs | 4 ++--
app/Gpu/GPUModeControl.cs | 4 ++--
app/Properties/Strings.Designer.cs | 2 +-
app/Properties/Strings.resx | 2 +-
app/Settings.cs | 2 +-
7 files changed, 23 insertions(+), 17 deletions(-)
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;