Skip to content

Commit af6cee0

Browse files
committed
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
1 parent ec15d52 commit af6cee0

File tree

3 files changed

+32
-8
lines changed

3 files changed

+32
-8
lines changed

PerformanceOverlay/Sensors.cs

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class UserValueSensor : ValueSensor
5252
public class HardwareSensor : ValueSensor
5353
{
5454
public string HardwareName { get; set; } = "";
55+
public IList<string> HardwareNames { get; set; } = new List<string>();
5556
public HardwareType HardwareType { get; set; }
5657
public string SensorName { get; set; } = "";
5758
public SensorType SensorType { get; set; }
@@ -60,11 +61,29 @@ public bool Matches(ISensor sensor)
6061
{
6162
return sensor != null &&
6263
sensor.Hardware.HardwareType == HardwareType &&
63-
sensor.Hardware.Name.StartsWith(HardwareName) &&
64+
MatchesHardwareName(sensor.Hardware.Name) &&
6465
sensor.SensorType == SensorType &&
6566
sensor.Name == SensorName;
6667
}
6768

69+
private bool MatchesHardwareName(string sensorHardwareName)
70+
{
71+
if (HardwareNames.Count > 0)
72+
{
73+
if (HardwareNames.Any(hardwareName => sensorHardwareName.StartsWith(hardwareName)))
74+
return true;
75+
}
76+
77+
// Empty string matches always
78+
if (HardwareName.Length == 0)
79+
return true;
80+
81+
if (sensorHardwareName.StartsWith(HardwareName))
82+
return true;
83+
84+
return false;
85+
}
86+
6887
public string? GetValue(ISensor sensor)
6988
{
7089
if (!sensor.Value.HasValue)
@@ -216,7 +235,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
216235
"GPU_%", new HardwareSensor()
217236
{
218237
HardwareType = HardwareType.GpuAmd,
219-
HardwareName = "AMD Custom GPU 0405",
238+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
220239
SensorType = SensorType.Load,
221240
SensorName = "D3D 3D",
222241
Format = "F0"
@@ -226,7 +245,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
226245
"GPU_MB", new HardwareSensor()
227246
{
228247
HardwareType = HardwareType.GpuAmd,
229-
HardwareName = "AMD Custom GPU 0405",
248+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
230249
SensorType = SensorType.SmallData,
231250
SensorName = "D3D Dedicated Memory Used",
232251
Format = "F0"
@@ -236,7 +255,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
236255
"GPU_GB", new HardwareSensor()
237256
{
238257
HardwareType = HardwareType.GpuAmd,
239-
HardwareName = "AMD Custom GPU 0405",
258+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
240259
SensorType = SensorType.SmallData,
241260
SensorName = "D3D Dedicated Memory Used",
242261
Format = "F0",
@@ -247,7 +266,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
247266
"GPU_W", new HardwareSensor()
248267
{
249268
HardwareType = HardwareType.GpuAmd,
250-
HardwareName = "AMD Custom GPU 0405",
269+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
251270
SensorType = SensorType.Power,
252271
SensorName = "GPU SoC",
253272
Format = "F1"
@@ -257,7 +276,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
257276
"GPU_MHZ", new HardwareSensor()
258277
{
259278
HardwareType = HardwareType.GpuAmd,
260-
HardwareName = "AMD Custom GPU 0405",
279+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
261280
SensorType = SensorType.Clock,
262281
SensorName = "GPU Core",
263282
Format = "F0"
@@ -267,7 +286,7 @@ private IEnumerable<float> GetNumericValues(Sensors sensors)
267286
"GPU_T", new HardwareSensor()
268287
{
269288
HardwareType = HardwareType.GpuAmd,
270-
HardwareName = "AMD Custom GPU 0405",
289+
HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M" },
271290
SensorType = SensorType.Temperature,
272291
SensorName = "GPU Temperature",
273292
Format = "F1",

PowerControl/Helpers/AMD/VangoghGPU.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ internal class VangoghGPU : IDisposable
1010
public static readonly Device[] SupportedDevices =
1111
{
1212
// SteamDeck
13-
new Device("AMD Custom GPU 0405", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 })
13+
new Device("AMD Custom GPU 0405", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }),
14+
15+
// SteamDeck unofficial APU drivers
16+
// https://sourceforge.net/projects/amernimezone/files/Release%20Polaris-Vega-Navi/AMD%20SOC%20Driver%20Variant/
17+
new Device("AMD Radeon 670M", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }),
1418
};
1519

1620
private static Device? DetectedDevice;

RELEASE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
## 0.6.x
1111

12+
- 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`
1213
- PowerControl: Show Game Profiles menu item
1314
- PowerControl: Support SMU of Vangogh GPU shipped with BIOS 115
1415
- SteamController: Add `DS4` support (with Gyro, Accel, Trackpads and Haptics)

0 commit comments

Comments
 (0)