diff --git a/crates/ratchet-core/Cargo.toml b/crates/ratchet-core/Cargo.toml index 97b1619b..cf0b67ff 100644 --- a/crates/ratchet-core/Cargo.toml +++ b/crates/ratchet-core/Cargo.toml @@ -31,6 +31,7 @@ glam = "0.25.0" pollster = "0.3.0" futures-intrusive = "0.5.0" anyhow = "1.0.79" +getrandom = { version = "0.2", features = ["js"] } # Needed for wasm support in `num` trait num = "0.4.1" rand_distr = { version = "0.4.3", optional = true } rand = { version = "0.8.4", optional = true } diff --git a/crates/ratchet-core/src/gpu/device.rs b/crates/ratchet-core/src/gpu/device.rs index fefe081e..0531e666 100644 --- a/crates/ratchet-core/src/gpu/device.rs +++ b/crates/ratchet-core/src/gpu/device.rs @@ -51,7 +51,7 @@ impl PartialEq for WgpuDevice { impl WgpuDevice { pub async fn new() -> Result { #[cfg(target_arch = "wasm32")] - let adapter = Self::select_adapter().await; + let adapter = Self::select_adapter().await?; #[cfg(not(target_arch = "wasm32"))] let adapter = Self::select_adapter()?; @@ -106,7 +106,7 @@ impl WgpuDevice { } #[cfg(target_arch = "wasm32")] - async fn select_adapter() -> Adapter { + async fn select_adapter() -> Result { let instance = wgpu::Instance::default(); let backends = wgpu::util::backend_bits_from_env().unwrap_or(wgpu::Backends::PRIMARY); instance @@ -116,10 +116,10 @@ impl WgpuDevice { force_fallback_adapter: false, }) .await - .map_err(|e| { - log::error!("Failed to create device: {:?}", e); - e - })? + .ok_or({ + log::error!("Failed to request adapter."); + DeviceError::AdapterRequestFailed + }) } #[cfg(not(target_arch = "wasm32"))]