aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/gpubuffer.rs
diff options
context:
space:
mode:
authorKunal Mohan <kunalmohan99@gmail.com>2020-07-02 12:23:32 +0530
committerKunal Mohan <kunalmohan99@gmail.com>2020-07-03 15:42:08 +0530
commitb672b78e1969a1172461468d6806ae912de7739f (patch)
tree9bf90a0c7a24e2fe85787ed46e0dd43e4753ac52 /components/script/dom/gpubuffer.rs
parentc0a582471eb25555408d467d25dffc52d81d8f8c (diff)
downloadservo-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.rs5
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);
},