aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/gpuadapter.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2020-01-23 07:53:58 -0500
committerGitHub <noreply@github.com>2020-01-23 07:53:58 -0500
commit2b77a992dba0547180b9bfd89a015556f8a51ba5 (patch)
tree89fd481d7d8fb18037c839ee29891a58e2a65898 /components/script/dom/gpuadapter.rs
parent24674687acaaca3a796f8cc61bc98c6e7d0097fb (diff)
parentdbed5f136438325bba20e24f0bff3aee4e86e763 (diff)
downloadservo-2b77a992dba0547180b9bfd89a015556f8a51ba5.tar.gz
servo-2b77a992dba0547180b9bfd89a015556f8a51ba5.zip
Auto merge of #25580 - szeged:wgpu_worker, r=jdm
Support worker for WebGPU To create resource ids for the WebGPU we need to access the `IdentityHub`. In order to access the `IdentityHub` from a `Window` or a `Worker` as well, I've moved the `IdentityHub` to the `GlobalScope` from the `Navigator`. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #25532 cc @kvark @jdm @zakorgy
Diffstat (limited to 'components/script/dom/gpuadapter.rs')
-rw-r--r--components/script/dom/gpuadapter.rs27
1 files changed, 10 insertions, 17 deletions
diff --git a/components/script/dom/gpuadapter.rs b/components/script/dom/gpuadapter.rs
index ca656af5044..c4eebe0c5d5 100644
--- a/components/script/dom/gpuadapter.rs
+++ b/components/script/dom/gpuadapter.rs
@@ -6,9 +6,7 @@ use crate::compartments::InCompartment;
use crate::dom::bindings::codegen::Bindings::GPUAdapterBinding::{
self, GPUAdapterMethods, GPUDeviceDescriptor,
};
-use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::WindowMethods;
use crate::dom::bindings::error::Error;
-use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
@@ -17,7 +15,6 @@ use crate::dom::gpu::response_async;
use crate::dom::gpu::AsyncWGPUListener;
use crate::dom::gpudevice::GPUDevice;
use crate::dom::promise::Promise;
-use crate::dom::window::Window;
use crate::script_runtime::JSContext as SafeJSContext;
use dom_struct::dom_struct;
use js::jsapi::{Heap, JSObject};
@@ -92,21 +89,17 @@ impl GPUAdapterMethods for GPUAdapter {
max_bind_groups: descriptor.limits.maxBindGroups,
},
};
- if let Some(window) = self.global().downcast::<Window>() {
- let id = window
- .Navigator()
- .create_device_id(self.adapter.0.backend());
- if self
- .channel
- .0
- .send(WebGPURequest::RequestDevice(sender, self.adapter, desc, id))
- .is_err()
- {
- promise.reject_error(Error::Operation);
- }
- } else {
+ let id = self
+ .global()
+ .wgpu_create_device_id(self.adapter.0.backend());
+ if self
+ .channel
+ .0
+ .send(WebGPURequest::RequestDevice(sender, self.adapter, desc, id))
+ .is_err()
+ {
promise.reject_error(Error::Operation);
- };
+ }
promise
}
}