From 385d9caa8d51c9476b40993ad54bc02ac0457958 Mon Sep 17 00:00:00 2001 From: Andy Fiedler Date: Sat, 20 Nov 2021 14:32:04 -0500 Subject: [PATCH] Web backend: call set_index_buffer with size as optional Size must be passed to setIndexBuffer in Javascript as undefined in order for WebGGPU to use the default size, which is the full buffer size. --- wgpu/src/backend/web.rs | 50 ++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/wgpu/src/backend/web.rs b/wgpu/src/backend/web.rs index d629361d7b..5e0ed3fb17 100644 --- a/wgpu/src/backend/web.rs +++ b/wgpu/src/backend/web.rs @@ -163,16 +163,23 @@ impl crate::RenderInner for RenderPass { offset: wgt::BufferAddress, size: Option, ) { - let mapped_size = match size { - Some(s) => s.get() as f64, - None => 0f64, + match size { + Some(s) => { + self.0.set_index_buffer_with_f64_and_f64( + &buffer.0, + map_index_format(index_format), + offset as f64, + s.get() as f64, + ); + } + None => { + self.0.set_index_buffer_with_f64( + &buffer.0, + map_index_format(index_format), + offset as f64, + ); + } }; - self.0.set_index_buffer_with_f64_and_f64( - &buffer.0, - map_index_format(index_format), - offset as f64, - mapped_size, - ); } fn set_vertex_buffer( &mut self, @@ -292,16 +299,23 @@ impl crate::RenderInner for RenderBundleEncoder { offset: wgt::BufferAddress, size: Option, ) { - let mapped_size = match size { - Some(s) => s.get() as f64, - None => 0f64, + match size { + Some(s) => { + self.0.set_index_buffer_with_f64_and_f64( + &buffer.0, + map_index_format(index_format), + offset as f64, + s.get() as f64, + ); + } + None => { + self.0.set_index_buffer_with_f64( + &buffer.0, + map_index_format(index_format), + offset as f64, + ); + } }; - self.0.set_index_buffer_with_f64_and_f64( - &buffer.0, - map_index_format(index_format), - offset as f64, - mapped_size, - ); } fn set_vertex_buffer( &mut self,