diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2020-01-23 07:53:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-23 07:53:58 -0500 |
commit | 2b77a992dba0547180b9bfd89a015556f8a51ba5 (patch) | |
tree | 89fd481d7d8fb18037c839ee29891a58e2a65898 /components/script/dom/gpuadapter.rs | |
parent | 24674687acaaca3a796f8cc61bc98c6e7d0097fb (diff) | |
parent | dbed5f136438325bba20e24f0bff3aee4e86e763 (diff) | |
download | servo-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.rs | 27 |
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 } } |