summaryrefslogtreecommitdiff
path: root/op_crates/webgpu/buffer.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-04-02 15:47:57 +0200
committerGitHub <noreply@github.com>2021-04-02 09:47:57 -0400
commit058579da562989ed15c86598053644bbc86c6747 (patch)
tree7f0f2bf30684dcbb350b93d987771f17a4abd250 /op_crates/webgpu/buffer.rs
parentadf57610904cb4f4ef25fb077f6e39c9017a4ea9 (diff)
refactor(ops): remove variadic buffers (#9944)
Diffstat (limited to 'op_crates/webgpu/buffer.rs')
-rw-r--r--op_crates/webgpu/buffer.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/op_crates/webgpu/buffer.rs b/op_crates/webgpu/buffer.rs
index 91a44f214..ade4122d5 100644
--- a/op_crates/webgpu/buffer.rs
+++ b/op_crates/webgpu/buffer.rs
@@ -1,14 +1,15 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
use deno_core::error::bad_resource_id;
+use deno_core::error::null_opbuf;
use deno_core::error::AnyError;
use deno_core::futures::channel::oneshot;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
use deno_core::OpState;
+use deno_core::Resource;
use deno_core::ResourceId;
use deno_core::ZeroCopyBuf;
-use deno_core::{BufVec, Resource};
use serde::Deserialize;
use std::borrow::Cow;
use std::cell::RefCell;
@@ -45,7 +46,7 @@ pub struct CreateBufferArgs {
pub fn op_webgpu_create_buffer(
state: &mut OpState,
args: CreateBufferArgs,
- _zero_copy: &mut [ZeroCopyBuf],
+ _zero_copy: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let instance = state.borrow::<super::Instance>();
let device_resource = state
@@ -88,7 +89,7 @@ pub struct BufferGetMapAsyncArgs {
pub async fn op_webgpu_buffer_get_map_async(
state: Rc<RefCell<OpState>>,
args: BufferGetMapAsyncArgs,
- _bufs: BufVec,
+ _bufs: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let (sender, receiver) = oneshot::channel::<Result<(), AnyError>>();
@@ -177,8 +178,9 @@ pub struct BufferGetMappedRangeArgs {
pub fn op_webgpu_buffer_get_mapped_range(
state: &mut OpState,
args: BufferGetMappedRangeArgs,
- zero_copy: &mut [ZeroCopyBuf],
+ zero_copy: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
+ let mut zero_copy = zero_copy.ok_or_else(null_opbuf)?;
let instance = state.borrow::<super::Instance>();
let buffer_resource = state
.resource_table
@@ -196,7 +198,7 @@ pub fn op_webgpu_buffer_get_mapped_range(
let slice = unsafe {
std::slice::from_raw_parts_mut(slice_pointer, args.size as usize)
};
- zero_copy[0].copy_from_slice(slice);
+ zero_copy.copy_from_slice(slice);
let rid = state
.resource_table
@@ -217,7 +219,7 @@ pub struct BufferUnmapArgs {
pub fn op_webgpu_buffer_unmap(
state: &mut OpState,
args: BufferUnmapArgs,
- zero_copy: &mut [ZeroCopyBuf],
+ zero_copy: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let mapped_resource = state
.resource_table
@@ -233,7 +235,7 @@ pub fn op_webgpu_buffer_unmap(
let slice_pointer = mapped_resource.0;
let size = mapped_resource.1;
- if let Some(buffer) = zero_copy.get(0) {
+ if let Some(buffer) = zero_copy {
let slice = unsafe { std::slice::from_raw_parts_mut(slice_pointer, size) };
slice.copy_from_slice(&buffer);
}