@@ -197,14 +197,14 @@ pub(crate) fn build_acceleration_structures(
197197 & mut input_barriers,
198198 & mut scratch_buffer_blas_size,
199199 & mut blas_storage,
200- state
200+ state,
201201 ) ?;
202202
203203 let mut scratch_buffer_tlas_size = 0 ;
204204 let mut tlas_storage = Vec :: < TlasStore > :: with_capacity ( tlas. len ( ) ) ;
205205 let mut instance_buffer_staging_source = Vec :: < u8 > :: new ( ) ;
206206
207- for package in tlas. iter ( ) {
207+ for package in tlas. iter ( ) {
208208 let tlas = & package. tlas ;
209209 state. tracker . tlas_s . insert_single ( tlas. clone ( ) ) ;
210210
@@ -525,7 +525,7 @@ impl CommandBufferMutable {
525525}
526526
527527///iterates over the blas iterator, and it's geometry, pushing the buffers into a storage vector (and also some validation).
528- fn iter_blas < ' snatch_guard : ' buffers , ' buffers > (
528+ fn iter_blas < ' snatch_guard : ' buffers , ' buffers > (
529529 blas_iter : impl Iterator < Item = & ' buffers OwnedBlasBuildEntry < ArcReferences > > ,
530530 build_command : & mut AsBuild ,
531531 input_barriers : & mut Vec < hal:: BufferBarrier < ' buffers , dyn hal:: DynBuffer > > ,
@@ -651,19 +651,21 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
651651 let vertex_raw = mesh. vertex_buffer . as_ref ( ) . try_raw ( state. snatch_guard ) ?;
652652 let vertex_buffer = & mesh. vertex_buffer ;
653653 vertex_buffer. check_usage ( BufferUsages :: BLAS_INPUT ) ?;
654-
655- if let Some ( barrier) = vertex_pending
656- . map ( | pending| pending . into_hal ( vertex_buffer. as_ref ( ) , state. snatch_guard ) )
657- {
654+
655+ if let Some ( barrier) = vertex_pending. map ( |pending| {
656+ pending. into_hal ( vertex_buffer. as_ref ( ) , state. snatch_guard )
657+ } ) {
658658 input_barriers. push ( barrier) ;
659659 }
660660 if vertex_buffer. size
661- < ( mesh. size . vertex_count + mesh. first_vertex ) as u64 * mesh. vertex_stride
661+ < ( mesh. size . vertex_count + mesh. first_vertex ) as u64
662+ * mesh. vertex_stride
662663 {
663664 return Err ( BuildAccelerationStructureError :: InsufficientBufferSize (
664665 vertex_buffer. error_ident ( ) ,
665666 vertex_buffer. size ,
666- ( mesh. size . vertex_count + mesh. first_vertex ) as u64 * mesh. vertex_stride ,
667+ ( mesh. size . vertex_count + mesh. first_vertex ) as u64
668+ * mesh. vertex_stride ,
667669 ) ) ;
668670 }
669671 let vertex_buffer_offset = mesh. first_vertex as u64 * mesh. vertex_stride ;
@@ -693,30 +695,33 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
693695 ) ;
694696 let index_raw = index_buffer. try_raw ( state. snatch_guard ) ?;
695697 index_buffer. check_usage ( BufferUsages :: BLAS_INPUT ) ?;
696-
697- if let Some ( barrier) = index_pending
698- . map ( | pending| pending . into_hal ( index_buffer. as_ref ( ) , state. snatch_guard ) )
699- {
698+
699+ if let Some ( barrier) = index_pending. map ( |pending| {
700+ pending. into_hal ( index_buffer. as_ref ( ) , state. snatch_guard )
701+ } ) {
700702 input_barriers. push ( barrier) ;
701703 }
702704 let index_stride = mesh. size . index_format . unwrap ( ) . byte_size ( ) as u64 ;
703705 let offset = mesh. first_index . unwrap ( ) as u64 * index_stride;
704- let index_buffer_size = mesh. size . index_count . unwrap ( ) as u64 * index_stride;
705-
706+ let index_buffer_size =
707+ mesh. size . index_count . unwrap ( ) as u64 * index_stride;
708+
706709 if mesh. size . index_count . unwrap ( ) % 3 != 0 {
707710 return Err ( BuildAccelerationStructureError :: InvalidIndexCount (
708711 index_buffer. error_ident ( ) ,
709712 mesh. size . index_count . unwrap ( ) ,
710713 ) ) ;
711714 }
712- if index_buffer. size < mesh. size . index_count . unwrap ( ) as u64 * index_stride + offset {
715+ if index_buffer. size
716+ < mesh. size . index_count . unwrap ( ) as u64 * index_stride + offset
717+ {
713718 return Err ( BuildAccelerationStructureError :: InsufficientBufferSize (
714719 index_buffer. error_ident ( ) ,
715720 index_buffer. size ,
716721 mesh. size . index_count . unwrap ( ) as u64 * index_stride + offset,
717722 ) ) ;
718723 }
719-
724+
720725 state. buffer_memory_init_actions . extend (
721726 index_buffer. initialization_status . read ( ) . create_action (
722727 & index_buffer,
@@ -728,7 +733,8 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
728733 } else {
729734 None
730735 } ;
731- let transform_buffer = if let Some ( ref transform_buffer) = mesh. transform_buffer {
736+ let transform_buffer = if let Some ( ref transform_buffer) = mesh. transform_buffer
737+ {
732738 if !blas
733739 . flags
734740 . contains ( wgt:: AccelerationStructureFlags :: USE_TRANSFORM )
@@ -753,15 +759,15 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
753759 }
754760 let transform_raw = transform_buffer. try_raw ( state. snatch_guard ) ?;
755761 transform_buffer. check_usage ( BufferUsages :: BLAS_INPUT ) ?;
756-
757- if let Some ( barrier) = transform_pending
758- . map ( | pending| pending . into_hal ( transform_buffer. as_ref ( ) , state. snatch_guard ) )
759- {
762+
763+ if let Some ( barrier) = transform_pending. map ( |pending| {
764+ pending. into_hal ( transform_buffer. as_ref ( ) , state. snatch_guard )
765+ } ) {
760766 input_barriers. push ( barrier) ;
761767 }
762-
768+
763769 let offset = mesh. transform_buffer_offset . unwrap ( ) ;
764-
770+
765771 if offset % wgt:: TRANSFORM_BUFFER_ALIGNMENT != 0 {
766772 return Err (
767773 BuildAccelerationStructureError :: UnalignedTransformBufferOffset (
@@ -795,7 +801,7 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
795801 }
796802 None
797803 } ;
798-
804+
799805 let triangles = hal:: AccelerationStructureTriangles {
800806 vertex_buffer : Some ( vertex_buffer) ,
801807 vertex_format : mesh. size . vertex_format ,
@@ -823,18 +829,18 @@ fn iter_blas<'snatch_guard:'buffers, 'buffers>(
823829 }
824830
825831 {
826- let scratch_buffer_offset = * scratch_buffer_blas_size;
827- * scratch_buffer_blas_size += align_to (
828- blas. size_info . build_scratch_size as u32 ,
829- state. device . alignments . ray_tracing_scratch_buffer_alignment ,
830- ) as u64 ;
831-
832- blas_storage. push ( BlasStore {
833- blas : blas. clone ( ) ,
834- entries : hal:: AccelerationStructureEntries :: Triangles ( triangle_entries) ,
835- scratch_buffer_offset,
836- } ) ;
837- triangle_entries = Vec :: new ( ) ;
832+ let scratch_buffer_offset = * scratch_buffer_blas_size;
833+ * scratch_buffer_blas_size += align_to (
834+ blas. size_info . build_scratch_size as u32 ,
835+ state. device . alignments . ray_tracing_scratch_buffer_alignment ,
836+ ) as u64 ;
837+
838+ blas_storage. push ( BlasStore {
839+ blas : blas. clone ( ) ,
840+ entries : hal:: AccelerationStructureEntries :: Triangles ( triangle_entries) ,
841+ scratch_buffer_offset,
842+ } ) ;
843+ triangle_entries = Vec :: new ( ) ;
838844 }
839845 }
840846 }
0 commit comments