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(),
|
||||
};
|
||||
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")),
|
||||
0x8086 => Err(anyhow::anyhow!("Intel driver info not implemented yet")),
|
||||
0x8086 => intel::get_driver_version(&self.devices.adapter),
|
||||
_ => Err(anyhow::anyhow!("Unknown vendor detected.")),
|
||||
}
|
||||
.context("Failed to get gpu driver info")
|
||||
.log_err()
|
||||
.unwrap_or("Unknown Driver".to_string());
|
||||
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