diff --git a/PerformanceOverlay/Sensors.cs b/PerformanceOverlay/Sensors.cs index 4795130..abe4161 100644 --- a/PerformanceOverlay/Sensors.cs +++ b/PerformanceOverlay/Sensors.cs @@ -52,6 +52,7 @@ namespace PerformanceOverlay public class HardwareSensor : ValueSensor { public string HardwareName { get; set; } = ""; + public IList HardwareNames { get; set; } = new List(); public HardwareType HardwareType { get; set; } public string SensorName { get; set; } = ""; public SensorType SensorType { get; set; } @@ -60,11 +61,29 @@ namespace PerformanceOverlay { return sensor != null && sensor.Hardware.HardwareType == HardwareType && - sensor.Hardware.Name.StartsWith(HardwareName) && + MatchesHardwareName(sensor.Hardware.Name) && sensor.SensorType == SensorType && sensor.Name == SensorName; } + private bool MatchesHardwareName(string sensorHardwareName) + { + if (HardwareNames.Count > 0) + { + if (HardwareNames.Any(hardwareName => sensorHardwareName.StartsWith(hardwareName))) + return true; + } + + // Empty string matches always + if (HardwareName.Length == 0) + return true; + + if (sensorHardwareName.StartsWith(HardwareName)) + return true; + + return false; + } + public string? GetValue(ISensor sensor) { if (!sensor.Value.HasValue) @@ -216,7 +235,7 @@ namespace PerformanceOverlay "GPU_%", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.Load, SensorName = "D3D 3D", Format = "F0" @@ -226,7 +245,7 @@ namespace PerformanceOverlay "GPU_MB", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.SmallData, SensorName = "D3D Dedicated Memory Used", Format = "F0" @@ -236,7 +255,7 @@ namespace PerformanceOverlay "GPU_GB", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.SmallData, SensorName = "D3D Dedicated Memory Used", Format = "F0", @@ -247,7 +266,7 @@ namespace PerformanceOverlay "GPU_W", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.Power, SensorName = "GPU SoC", Format = "F1" @@ -257,7 +276,7 @@ namespace PerformanceOverlay "GPU_MHZ", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.Clock, SensorName = "GPU Core", Format = "F0" @@ -267,7 +286,7 @@ namespace PerformanceOverlay "GPU_T", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareName = "AMD Custom GPU 0405", + HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" }, SensorType = SensorType.Temperature, SensorName = "GPU Temperature", Format = "F1", diff --git a/PowerControl/Helpers/AMD/VangoghGPU.cs b/PowerControl/Helpers/AMD/VangoghGPU.cs index bf27dcc..d6dc003 100644 --- a/PowerControl/Helpers/AMD/VangoghGPU.cs +++ b/PowerControl/Helpers/AMD/VangoghGPU.cs @@ -10,7 +10,11 @@ namespace PowerControl.Helpers.AMD public static readonly Device[] SupportedDevices = { // SteamDeck - new Device("AMD Custom GPU 0405", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }) + new Device("AMD Custom GPU 0405", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }), + + // SteamDeck unofficial APU drivers + // https://sourceforge.net/projects/amernimezone/files/Release%20Polaris-Vega-Navi/AMD%20SOC%20Driver%20Variant/ + new Device("AMD Radeon 670M", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }), }; private static Device? DetectedDevice; diff --git a/RELEASE.md b/RELEASE.md index 4abda3a..0c62040 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -9,6 +9,7 @@ ## 0.6.x +- All: Support [unofficial APU drivers](https://sourceforge.net/projects/amernimezone/files/Release%20Polaris-Vega-Navi/AMD%20SOC%20Driver%20Variant/) that present themselves as `AMD Radeon 670M` - PowerControl: Show Game Profiles menu item - PowerControl: Support SMU of Vangogh GPU shipped with BIOS 115 - SteamController: Add `DS4` support (with Gyro, Accel, Trackpads and Haptics)