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/queue.rs | |
parent | adf57610904cb4f4ef25fb077f6e39c9017a4ea9 (diff) |
refactor(ops): remove variadic buffers (#9944)
Diffstat (limited to 'op_crates/webgpu/queue.rs')
-rw-r--r-- | op_crates/webgpu/queue.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/op_crates/webgpu/queue.rs b/op_crates/webgpu/queue.rs index bbfb782de..c96e2a158 100644 --- a/op_crates/webgpu/queue.rs +++ b/op_crates/webgpu/queue.rs @@ -1,6 +1,7 @@ // 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::serde_json::json; use deno_core::serde_json::Value; @@ -23,7 +24,7 @@ pub struct QueueSubmitArgs { pub fn op_webgpu_queue_submit( state: &mut OpState, args: QueueSubmitArgs, - _zero_copy: &mut [ZeroCopyBuf], + _zero_copy: Option<ZeroCopyBuf>, ) -> Result<Value, AnyError> { let instance = state.borrow::<super::Instance>(); let queue_resource = state @@ -69,8 +70,9 @@ pub struct QueueWriteBufferArgs { pub fn op_webgpu_write_buffer( state: &mut OpState, args: QueueWriteBufferArgs, - zero_copy: &mut [ZeroCopyBuf], + zero_copy: Option<ZeroCopyBuf>, ) -> Result<Value, AnyError> { + let zero_copy = zero_copy.ok_or_else(null_opbuf)?; let instance = state.borrow::<super::Instance>(); let buffer_resource = state .resource_table @@ -84,8 +86,8 @@ pub fn op_webgpu_write_buffer( let queue = queue_resource.0; let data = match args.size { - Some(size) => &zero_copy[0][args.data_offset..(args.data_offset + size)], - None => &zero_copy[0][args.data_offset..], + Some(size) => &zero_copy[args.data_offset..(args.data_offset + size)], + None => &zero_copy[args.data_offset..], }; let maybe_err = gfx_select!(queue => instance.queue_write_buffer( queue, @@ -110,8 +112,9 @@ pub struct QueueWriteTextureArgs { pub fn op_webgpu_write_texture( state: &mut OpState, args: QueueWriteTextureArgs, - zero_copy: &mut [ZeroCopyBuf], + zero_copy: Option<ZeroCopyBuf>, ) -> Result<Value, AnyError> { + let zero_copy = zero_copy.ok_or_else(null_opbuf)?; let instance = state.borrow::<super::Instance>(); let texture_resource = state .resource_table @@ -144,7 +147,7 @@ pub fn op_webgpu_write_texture( let maybe_err = gfx_select!(queue => instance.queue_write_texture( queue, &destination, - &*zero_copy[0], + &*zero_copy, &data_layout, &wgpu_types::Extent3d { width: args.size.width.unwrap_or(1), |