diff --git a/Cargo.lock b/Cargo.lock index a7209de50..31faa3224 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8052,9 +8052,9 @@ dependencies = [ [[package]] name = "wmi" -version = "0.16.0" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d9189bc72f0e4d814d812216ec06636ce3ea5597ff5f1ff9f9f0e5ec781c027" +checksum = "003e65f4934cf9449b9ce913ad822cd054a5af669d24f93db101fdb02856bb23" dependencies = [ "futures", "log", diff --git a/Cargo.toml b/Cargo.toml index 613f5eb3d..61fbe4fe5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -296,7 +296,7 @@ windows = { version = "0.61.0", features = [ windows-registry = { version = "0.5.0" } windows-version = { version = "0.1.6" } wiremock = { version = "0.6.4" } -wmi = { version = "0.16.0", default-features = false } +wmi = { version = "0.18.3", default-features = false } xz2 = { version = "0.1.7", features = ["static"] } zeroize = { version = "1.8.1" } zip = { version = "8.1.0", default-features = false, features = [ diff --git a/crates/uv-torch/src/accelerator.rs b/crates/uv-torch/src/accelerator.rs index 5ccfd03b7..3f4810374 100644 --- a/crates/uv-torch/src/accelerator.rs +++ b/crates/uv-torch/src/accelerator.rs @@ -9,7 +9,7 @@ use uv_static::EnvVars; #[cfg(windows)] use serde::Deserialize; #[cfg(windows)] -use wmi::{COMLibrary, WMIConnection}; +use wmi::WMIConnection; #[derive(Debug, thiserror::Error)] pub enum AcceleratorError { @@ -208,34 +208,28 @@ impl Accelerator { name: Option, } - match COMLibrary::new() { - Ok(com_library) => match WMIConnection::new(com_library) { - Ok(wmi_connection) => match wmi_connection.query::() { - Ok(gpu_controllers) => { - for gpu_controller in gpu_controllers { - if let Some(pnp_device_id) = &gpu_controller.pnp_device_id { - if pnp_device_id - .contains(&format!("VEN_{PCI_VENDOR_ID_INTEL:04X}")) - { - debug!( - "Detected Intel GPU from WMI: PNPDeviceID={}, Name={:?}", - pnp_device_id, gpu_controller.name - ); - return Ok(Some(Self::Xpu)); - } + match WMIConnection::new() { + Ok(wmi_connection) => match wmi_connection.query::() { + Ok(gpu_controllers) => { + for gpu_controller in gpu_controllers { + if let Some(pnp_device_id) = &gpu_controller.pnp_device_id { + if pnp_device_id.contains(&format!("VEN_{PCI_VENDOR_ID_INTEL:04X}")) + { + debug!( + "Detected Intel GPU from WMI: PNPDeviceID={}, Name={:?}", + pnp_device_id, gpu_controller.name + ); + return Ok(Some(Self::Xpu)); } } } - Err(e) => { - debug!("Failed to query WMI for video controllers: {e}"); - } - }, + } Err(e) => { - debug!("Failed to create WMI connection: {e}"); + debug!("Failed to query WMI for video controllers: {e}"); } }, Err(e) => { - debug!("Failed to initialize COM library: {e}"); + debug!("Failed to create WMI connection: {e}"); } } }