aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/gpubuffer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/gpubuffer.rs')
-rw-r--r--components/script/dom/gpubuffer.rs63
1 files changed, 27 insertions, 36 deletions
diff --git a/components/script/dom/gpubuffer.rs b/components/script/dom/gpubuffer.rs
index bb747a998cc..0a7689cdb5a 100644
--- a/components/script/dom/gpubuffer.rs
+++ b/components/script/dom/gpubuffer.rs
@@ -12,9 +12,7 @@ use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSharedMemory;
use js::typedarray::{ArrayBuffer, ArrayBufferU8};
use webgpu::wgc::device::HostMap;
-use webgpu::{
- WebGPU, WebGPUBuffer, WebGPUOpResult, WebGPURequest, WebGPUResponse, WebGPUResponseResult,
-};
+use webgpu::{WebGPU, WebGPUBuffer, WebGPURequest, WebGPUResponse, WebGPUResponseResult};
use super::bindings::buffer_source::{create_new_external_array_buffer, HeapBufferSource};
use crate::dom::bindings::cell::DomRefCell;
@@ -137,7 +135,7 @@ impl Drop for GPUBuffer {
if let Err(e) = self
.channel
.0
- .send((None, WebGPURequest::DropBuffer(self.buffer.0)))
+ .send(WebGPURequest::DropBuffer(self.buffer.0))
{
warn!(
"Failed to send WebGPURequest::DropBuffer({:?}) ({})",
@@ -166,17 +164,14 @@ impl GPUBufferMethods for GPUBuffer {
return Err(Error::Operation);
};
let m_range = m_info.mapping_range.clone();
- if let Err(e) = self.channel.0.send((
- self.device.use_current_scope(),
- WebGPURequest::UnmapBuffer {
- buffer_id: self.id().0,
- device_id: self.device.id().0,
- array_buffer: IpcSharedMemory::from_bytes(&m_info.mapping.lock().unwrap()),
- is_map_read: m_info.map_mode == Some(GPUMapModeConstants::READ),
- offset: m_range.start,
- size: m_range.end - m_range.start,
- },
- )) {
+ if let Err(e) = self.channel.0.send(WebGPURequest::UnmapBuffer {
+ buffer_id: self.id().0,
+ device_id: self.device.id().0,
+ array_buffer: IpcSharedMemory::from_bytes(&m_info.mapping.lock().unwrap()),
+ is_map_read: m_info.map_mode == Some(GPUMapModeConstants::READ),
+ offset: m_range.start,
+ size: m_range.end - m_range.start,
+ }) {
warn!("Failed to send Buffer unmap ({:?}) ({})", self.buffer.0, e);
}
// Step 3.3
@@ -209,7 +204,7 @@ impl GPUBufferMethods for GPUBuffer {
if let Err(e) = self
.channel
.0
- .send((None, WebGPURequest::DestroyBuffer(self.buffer.0)))
+ .send(WebGPURequest::DestroyBuffer(self.buffer.0))
{
warn!(
"Failed to send WebGPURequest::DestroyBuffer({:?}) ({})",
@@ -237,12 +232,11 @@ impl GPUBufferMethods for GPUBuffer {
} else {
self.size - offset
};
- let scope_id = self.device.use_current_scope();
if self.state.get() != GPUBufferState::Unmapped {
- self.device.handle_server_msg(
- scope_id,
- WebGPUOpResult::ValidationError(String::from("Buffer is not Unmapped")),
- );
+ self.device
+ .dispatch_error(webgpu::Error::Validation(String::from(
+ "Buffer is not Unmapped",
+ )));
promise.reject_error(Error::Abort);
return promise;
}
@@ -250,10 +244,10 @@ impl GPUBufferMethods for GPUBuffer {
GPUMapModeConstants::READ => HostMap::Read,
GPUMapModeConstants::WRITE => HostMap::Write,
_ => {
- self.device.handle_server_msg(
- scope_id,
- WebGPUOpResult::ValidationError(String::from("Invalid MapModeFlags")),
- );
+ self.device
+ .dispatch_error(webgpu::Error::Validation(String::from(
+ "Invalid MapModeFlags",
+ )));
promise.reject_error(Error::Abort);
return promise;
},
@@ -262,17 +256,14 @@ impl GPUBufferMethods for GPUBuffer {
let map_range = offset..offset + range_size;
let sender = response_async(&promise, self);
- if let Err(e) = self.channel.0.send((
- scope_id,
- WebGPURequest::BufferMapAsync {
- sender,
- buffer_id: self.buffer.0,
- device_id: self.device.id().0,
- host_map,
- offset,
- size: Some(range_size),
- },
- )) {
+ if let Err(e) = self.channel.0.send(WebGPURequest::BufferMapAsync {
+ sender,
+ buffer_id: self.buffer.0,
+ device_id: self.device.id().0,
+ host_map,
+ offset,
+ size: Some(range_size),
+ }) {
warn!(
"Failed to send BufferMapAsync ({:?}) ({})",
self.buffer.0, e