From d38ce95b22ac96dd1b76eeda57c36cf805d1db3f Mon Sep 17 00:00:00 2001 From: Joshua Yanovski Date: Mon, 15 Aug 2022 19:50:44 -0700 Subject: [PATCH] Reduce alignment requirements. --- voxygen/src/lib.rs | 1 + voxygen/src/scene/terrain.rs | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/voxygen/src/lib.rs b/voxygen/src/lib.rs index 5d4c32f587..0ebcedb712 100644 --- a/voxygen/src/lib.rs +++ b/voxygen/src/lib.rs @@ -3,6 +3,7 @@ #![allow(clippy::identity_op, clippy::option_map_unit_fn)] #![deny(clippy::clone_on_ref_ptr)] #![feature( + array_chunks, array_methods, array_windows, array_zip, diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index bfa7e10548..6e25d8bcce 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -1354,8 +1354,7 @@ impl/**/ Terrain { label: Some("Update textures."), }); - let locals_buffer_ = bytemuck::cast_slice_mut(&mut *locals_buffer); - for (locals_offset, (response, locals_buffer)) in incoming_chunks.zip(locals_buffer_).enumerate() { + for (locals_offset, (response, locals_buffer)) in incoming_chunks.zip(locals_buffer.array_chunks_mut::<{ core::mem::size_of::() }>()).enumerate() { match self.mesh_todo.get(&response.pos) { // It's the mesh we want, insert the newly finished model into the terrain model // data structure (convert the mesh to a model first of course). @@ -1462,7 +1461,7 @@ impl/**/ Terrain { ); // Update the memory mapped locals. - *locals_buffer = + let locals_buffer_ = /* renderer.update_mapped(&mut mesh.locals, &[*/TerrainLocals::new( Vec3::from( response.pos.map2(VolGrid2d::::chunk_size(), |e, sz| { @@ -1472,6 +1471,7 @@ impl/**/ Terrain { atlas_offs, load_time, )/*])*/; + *locals_buffer = bytemuck::cast(locals_buffer_); /* let locals = Arc::clone(&locals); */ Self::insert_chunk(&slowjob, &mut self.chunks, &mut self.atlas, response.pos, TerrainChunkData {