diff options
author | Kunal Mohan <kunalmohan99@gmail.com> | 2020-07-02 12:23:32 +0530 |
---|---|---|
committer | Kunal Mohan <kunalmohan99@gmail.com> | 2020-07-03 15:42:08 +0530 |
commit | b672b78e1969a1172461468d6806ae912de7739f (patch) | |
tree | 9bf90a0c7a24e2fe85787ed46e0dd43e4753ac52 /components/script/dom/gpubuffer.rs | |
parent | c0a582471eb25555408d467d25dffc52d81d8f8c (diff) | |
download | servo-b672b78e1969a1172461468d6806ae912de7739f.tar.gz servo-b672b78e1969a1172461468d6806ae912de7739f.zip |
WebGPU update presentation data asynchronously
Diffstat (limited to 'components/script/dom/gpubuffer.rs')
-rw-r--r-- | components/script/dom/gpubuffer.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/components/script/dom/gpubuffer.rs b/components/script/dom/gpubuffer.rs index 724e22f6f53..c4dc472dc98 100644 --- a/components/script/dom/gpubuffer.rs +++ b/components/script/dom/gpubuffer.rs @@ -16,6 +16,7 @@ use crate::dom::promise::Promise; use crate::realms::InRealm; use crate::script_runtime::JSContext; use dom_struct::dom_struct; +use ipc_channel::ipc::IpcSharedMemory; use js::jsapi::DetachArrayBuffer; use js::jsapi::NewExternalArrayBuffer; use js::jsapi::{Heap, JSObject}; @@ -150,7 +151,7 @@ impl GPUBufferMethods for GPUBuffer { let m_range = m_info.mapping_range.clone(); if let Err(e) = self.channel.0.send(WebGPURequest::UnmapBuffer { buffer_id: self.id().0, - array_buffer: m_info.mapping.borrow().clone(), + array_buffer: IpcSharedMemory::from_bytes(m_info.mapping.borrow().as_slice()), is_map_read: m_info.map_mode == Some(GPUMapModeConstants::READ), offset: m_range.start, size: m_range.end - m_range.start, @@ -325,7 +326,7 @@ impl AsyncWGPUListener for GPUBuffer { .as_mut() .unwrap() .mapping - .borrow_mut() = bytes; + .borrow_mut() = bytes.to_vec(); promise.resolve_native(&()); self.state.set(GPUBufferState::Mapped); }, |