summaryrefslogtreecommitdiff
path: root/op_crates/webgpu/lib.rs
diff options
context:
space:
mode:
authorcrowlKats <13135287+crowlKats@users.noreply.github.com>2021-03-20 00:43:54 +0100
committerGitHub <noreply@github.com>2021-03-20 00:43:54 +0100
commit0f9c929b3a7135667e7f1f8de3ae1195b59fb2e3 (patch)
treefa0b1913269ae1e2893ab7a7729c501df8b040bd /op_crates/webgpu/lib.rs
parent941a7c8ec9dd1da28923b45da6009576e65c172b (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.rs11
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 {