impl intel driver version
This commit is contained in:
parent
5058752f2d
commit
0c40bb9b5f
1 changed files with 21 additions and 2 deletions
|
@ -412,11 +412,12 @@ impl DirectXRenderer {
|
||||||
_ => "Unknown Vendor".to_string(),
|
_ => "Unknown Vendor".to_string(),
|
||||||
};
|
};
|
||||||
let driver_version = match desc.VendorId {
|
let driver_version = match desc.VendorId {
|
||||||
0x10DE => nvidia::get_driver_version().context("Failed to get NVIDIA driver info"),
|
0x10DE => nvidia::get_driver_version(),
|
||||||
0x1002 => Err(anyhow::anyhow!("AMD driver info not implemented yet")),
|
0x1002 => Err(anyhow::anyhow!("AMD driver info not implemented yet")),
|
||||||
0x8086 => Err(anyhow::anyhow!("Intel driver info not implemented yet")),
|
0x8086 => intel::get_driver_version(&self.devices.adapter),
|
||||||
_ => Err(anyhow::anyhow!("Unknown vendor detected.")),
|
_ => Err(anyhow::anyhow!("Unknown vendor detected.")),
|
||||||
}
|
}
|
||||||
|
.context("Failed to get gpu driver info")
|
||||||
.log_err()
|
.log_err()
|
||||||
.unwrap_or("Unknown Driver".to_string());
|
.unwrap_or("Unknown Driver".to_string());
|
||||||
Ok(GpuSpecs {
|
Ok(GpuSpecs {
|
||||||
|
@ -1443,3 +1444,21 @@ mod nvidia {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mod intel {
|
||||||
|
use windows::{
|
||||||
|
Win32::Graphics::Dxgi::{IDXGIAdapter1, IDXGIDevice},
|
||||||
|
core::Interface,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub(super) fn get_driver_version(adapter: &IDXGIAdapter1) -> anyhow::Result<String> {
|
||||||
|
let number = unsafe { adapter.CheckInterfaceSupport(&IDXGIDevice::IID as _) }?;
|
||||||
|
Ok(format!(
|
||||||
|
"{}.{}.{}.{}",
|
||||||
|
number >> 48,
|
||||||
|
(number >> 32) & 0xFFFF,
|
||||||
|
(number >> 16) & 0xFFFF,
|
||||||
|
number & 0xFFFF
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue