From c810b040f875333fb9b1fe5d2269ba08d0c878f2 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 12 Jan 2025 00:57:58 +0100 Subject: switch to 32-bit index format --- client/src/scene_prepare.rs | 8 ++++---- client/src/scene_render.rs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'client/src') diff --git a/client/src/scene_prepare.rs b/client/src/scene_prepare.rs index 20c6e85..e7946e7 100644 --- a/client/src/scene_prepare.rs +++ b/client/src/scene_prepare.rs @@ -80,7 +80,7 @@ pub struct ScenePreparer { textures: DemandMap, (Arc, Arc)>, placeholder_textures: DemandMap<(), (Arc, Arc)>, - index_buffers: DemandMap>, (Arc, u32)>, + index_buffers: DemandMap>, (Arc, u32)>, vertex_buffers: DemandMap>, (Arc, u32)>, placeholder_vertex_buffers: DemandMap<(u32, bool), Arc>, mesh_parts: DemandMap, Arc>, @@ -133,7 +133,7 @@ impl ScenePreparer { let buf = buf .into_iter() .flatten() - .flat_map(u16::to_le_bytes) + .flat_map(u32::to_le_bytes) .collect::>(); let buffer = self.device.create_buffer_init(&BufferInitDescriptor { contents: &buf, @@ -141,8 +141,8 @@ impl ScenePreparer { usage: BufferUsages::INDEX | BufferUsages::COPY_DST, }); self.index_buffers - .insert(pres.clone(), (Arc::new(buffer), (buf.len() / 2) as u32)); - debug!("index buffer created (len={}) {pres}", buf.len() / 2); + .insert(pres.clone(), (Arc::new(buffer), (buf.len() / 4) as u32)); + debug!("index buffer created (len={}) {pres}", buf.len() / 4); } } for pres in self.vertex_buffers.needed() { diff --git a/client/src/scene_render.rs b/client/src/scene_render.rs index 7b2f653..b588e7d 100644 --- a/client/src/scene_render.rs +++ b/client/src/scene_render.rs @@ -191,7 +191,7 @@ impl ScenePipeline { rpass.set_bind_group(1, &*part.tex_normal, &[]); rpass.set_pipeline(&self.pipeline); rpass.set_push_constants(ShaderStages::VERTEX, 0, projection.as_flattened()); - rpass.set_index_buffer(part.index.slice(..), IndexFormat::Uint16); + rpass.set_index_buffer(part.index.slice(..), IndexFormat::Uint32); rpass.set_vertex_buffer(0, part.va_position.slice(..)); rpass.set_vertex_buffer(1, part.va_normal.slice(..)); rpass.set_vertex_buffer(2, part.va_texcoord.slice(..)); -- cgit v1.2.3-70-g09d2