diff options
author | crowlKats <13135287+crowlKats@users.noreply.github.com> | 2021-03-20 00:43:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-20 00:43:54 +0100 |
commit | 0f9c929b3a7135667e7f1f8de3ae1195b59fb2e3 (patch) | |
tree | fa0b1913269ae1e2893ab7a7729c501df8b040bd /op_crates/webgpu/lib.rs | |
parent | 941a7c8ec9dd1da28923b45da6009576e65c172b (diff) |
fix(op_crates/webgpu): create instance only when required (#9771)
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
Diffstat (limited to 'op_crates/webgpu/lib.rs')
-rw-r--r-- | op_crates/webgpu/lib.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/op_crates/webgpu/lib.rs b/op_crates/webgpu/lib.rs index 3249b2818..046472905 100644 --- a/op_crates/webgpu/lib.rs +++ b/op_crates/webgpu/lib.rs @@ -198,7 +198,16 @@ pub async fn op_webgpu_request_adapter( ) -> Result<Value, AnyError> { let mut state = state.borrow_mut(); check_unstable(&state, "navigator.gpu.requestAdapter"); - let instance = state.borrow::<Instance>(); + let instance = if let Some(instance) = state.try_borrow::<Instance>() { + instance + } else { + state.put(wgpu_core::hub::Global::new( + "webgpu", + wgpu_core::hub::IdentityManagerFactory, + wgpu_types::BackendBit::PRIMARY, + )); + state.borrow::<Instance>() + }; let descriptor = wgpu_core::instance::RequestAdapterOptions { power_preference: match args.power_preference { |