diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-04-02 15:47:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-02 09:47:57 -0400 |
commit | 058579da562989ed15c86598053644bbc86c6747 (patch) | |
tree | 7f0f2bf30684dcbb350b93d987771f17a4abd250 /op_crates/webgpu/buffer.rs | |
parent | adf57610904cb4f4ef25fb077f6e39c9017a4ea9 (diff) |
refactor(ops): remove variadic buffers (#9944)
Diffstat (limited to 'op_crates/webgpu/buffer.rs')
-rw-r--r-- | op_crates/webgpu/buffer.rs | 16 |
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); } |