supergfxctl/GPUDetection.patch

34 lines
2.0 KiB
Diff

diff --git a/src/pci_device.rs b/src/pci_device.rs
index ef15d03..5645d9e 100644
--- a/src/pci_device.rs
+++ b/src/pci_device.rs
@@ -317,18 +317,21 @@ impl Device {
// Assume all Nvidia GPUs are dGPU
class.starts_with("30") && (boot_vga == "0" || id.starts_with("10DE"))
} else if id.starts_with("1002") {
- debug!("Found AMD GPU {id} without boot_vga attribute at {:?}", device.sysname());
-
+ debug!("Found AMD Device {id} without boot_vga attribute at {:?}", device.sysname());
// Sometimes AMD iGPU doesn't get a boot_vga attribute even in Hybrid mode
// Fallback to the following method for telling iGPU apart from dGPU:
// https://github.com/fastfetch-cli/fastfetch/blob/fed2c87f67de43e3672d1a4a7767d59e7ff22ba2/src/detection/gpu/gpu_linux.c#L148
let mut dev_path = PathBuf::from(device.syspath());
dev_path.push("hwmon");
-
- let hwmon_n_opt = dev_path.read_dir().map_err(
- |e| GfxError::from_io(e, dev_path)
- )?.next();
-
+
+ let hwmon_n_opt = match dev_path.read_dir() {
+ Ok(mut entries) => {
+ entries.next()
+ }
+ Err(_e) => {
+ None // Continue with the assumption it's not a dGPU
+ }
+ };
match hwmon_n_opt {
Some(hwmon_n_result) => {
let mut hwmon_n = hwmon_n_result?.path();