|
1 | 1 | use alloc::{boxed::Box, sync::Arc, vec::Vec}; |
2 | 2 | use core::{ |
3 | | - cmp::max, mem, num::NonZeroU64, ops::{Deref, Range}, |
| 3 | + cmp::max, |
| 4 | + mem, |
| 5 | + num::NonZeroU64, |
| 6 | + ops::{Deref, Range}, |
4 | 7 | }; |
5 | 8 |
|
6 | 9 | use wgt::{math::align_to, BufferUsages, BufferUses, Features}; |
@@ -158,10 +161,8 @@ impl super::CommandEncoder { |
158 | 161 |
|
159 | 162 | for tlas_package in &tlas_iter { |
160 | 163 | tlas_package.tlas.check_is_valid()?; |
161 | | - for instance in &tlas_package.instances { |
162 | | - if let Some(instance) = instance { |
163 | | - instance.blas.check_is_valid()?; |
164 | | - } |
| 164 | + for instance in tlas_package.instances.iter().flatten() { |
| 165 | + instance.blas.check_is_valid()?; |
165 | 166 | } |
166 | 167 | } |
167 | 168 |
|
@@ -234,14 +235,17 @@ impl Global { |
234 | 235 | }); |
235 | 236 | let tlases = tlas_iter.map(|e| ArcTlasPackage { |
236 | 237 | tlas: hub.tlas_s.get(e.tlas), |
237 | | - instances: e.instances.map(|instance| { |
238 | | - instance.as_ref().map(|instance| ArcTlasInstance { |
239 | | - blas: hub.blas_s.get(instance.blas), |
240 | | - transform: *instance.transform, |
241 | | - custom_data: instance.custom_data, |
242 | | - mask: instance.mask, |
| 238 | + instances: e |
| 239 | + .instances |
| 240 | + .map(|instance| { |
| 241 | + instance.as_ref().map(|instance| ArcTlasInstance { |
| 242 | + blas: hub.blas_s.get(instance.blas), |
| 243 | + transform: *instance.transform, |
| 244 | + custom_data: instance.custom_data, |
| 245 | + mask: instance.mask, |
| 246 | + }) |
243 | 247 | }) |
244 | | - }).collect(), |
| 248 | + .collect(), |
245 | 249 | lowest_unmodified: e.lowest_unmodified, |
246 | 250 | }); |
247 | 251 | cmd_enc.build_acceleration_structures(blases.into_iter(), tlases.collect()) |
|
0 commit comments