diff options
author | Luca Casonato <hello@lcas.dev> | 2021-07-08 11:07:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-08 11:07:49 +0200 |
commit | 215f6f2c9e0522c7c8d794f35713225884540cd7 (patch) | |
tree | bc520f0abb813bb22c32dc9fa13e87cb0544bf7b /extensions/webgpu/render_pass.rs | |
parent | ce587a15daa7238db3cf8d3dee9d41a71bc2fc6a (diff) |
chore: update wgpu to 0.9.0 (#11315)
Diffstat (limited to 'extensions/webgpu/render_pass.rs')
-rw-r--r-- | extensions/webgpu/render_pass.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/extensions/webgpu/render_pass.rs b/extensions/webgpu/render_pass.rs index 09849cbd9..81f2e6640 100644 --- a/extensions/webgpu/render_pass.rs +++ b/extensions/webgpu/render_pass.rs @@ -2,6 +2,7 @@ use deno_core::error::bad_resource_id; use deno_core::error::null_opbuf; +use deno_core::error::type_error; use deno_core::error::AnyError; use deno_core::ResourceId; use deno_core::ZeroCopyBuf; @@ -480,7 +481,7 @@ pub struct RenderPassSetIndexBufferArgs { buffer: u32, index_format: String, offset: u64, - size: u64, + size: Option<u64>, } pub fn op_webgpu_render_pass_set_index_buffer( @@ -497,11 +498,20 @@ pub fn op_webgpu_render_pass_set_index_buffer( .get::<WebGpuRenderPass>(args.render_pass_rid) .ok_or_else(bad_resource_id)?; + let size = if let Some(size) = args.size { + Some( + std::num::NonZeroU64::new(size) + .ok_or_else(|| type_error("size must be larger than 0"))?, + ) + } else { + None + }; + render_pass_resource.0.borrow_mut().set_index_buffer( buffer_resource.0, super::pipeline::serialize_index_format(args.index_format), args.offset, - std::num::NonZeroU64::new(args.size), + size, ); Ok(WebGpuResult::empty()) @@ -514,7 +524,7 @@ pub struct RenderPassSetVertexBufferArgs { slot: u32, buffer: u32, offset: u64, - size: u64, + size: Option<u64>, } pub fn op_webgpu_render_pass_set_vertex_buffer( @@ -531,12 +541,21 @@ pub fn op_webgpu_render_pass_set_vertex_buffer( .get::<WebGpuRenderPass>(args.render_pass_rid) .ok_or_else(bad_resource_id)?; + let size = if let Some(size) = args.size { + Some( + std::num::NonZeroU64::new(size) + .ok_or_else(|| type_error("size must be larger than 0"))?, + ) + } else { + None + }; + wgpu_core::command::render_ffi::wgpu_render_pass_set_vertex_buffer( &mut render_pass_resource.0.borrow_mut(), args.slot, buffer_resource.0, args.offset, - std::num::NonZeroU64::new(args.size), + size, ); Ok(WebGpuResult::empty()) |