@@ -8,32 +8,29 @@ use core::{
8
8
use wgt:: { math:: align_to, BufferUsages , BufferUses , Features } ;
9
9
10
10
use crate :: {
11
- command:: CommandBufferMutable ,
11
+ command:: encoder:: EncodingState ,
12
+ ray_tracing:: { AsAction , AsBuild , BlasTriangleGeometryInfo , TlasBuild , ValidateAsActionsError } ,
13
+ resource:: InvalidResourceError ,
14
+ track:: Tracker ,
15
+ } ;
16
+ use crate :: { command:: EncoderStateError , device:: resource:: CommandIndices } ;
17
+ use crate :: {
18
+ command:: { ArcCommand , ArcReferences , CommandBufferMutable } ,
12
19
device:: queue:: TempResource ,
13
20
global:: Global ,
14
21
id:: CommandEncoderId ,
15
22
init_tracker:: MemoryInitKind ,
16
23
ray_tracing:: {
17
- BlasBuildEntry , BlasGeometries , BuildAccelerationStructureError , TlasPackage ,
18
- TraceBlasBuildEntry , TraceBlasGeometries , TraceBlasTriangleGeometry , TraceTlasInstance ,
19
- TraceTlasPackage ,
24
+ ArcBlasBuildEntry , ArcBlasGeometries , ArcBlasTriangleGeometry , ArcTlasInstance ,
25
+ ArcTlasPackage , BlasBuildEntry , BlasGeometries , BuildAccelerationStructureError ,
26
+ OwnedBlasBuildEntry , OwnedTlasPackage , TlasPackage , TraceBlasBuildEntry ,
27
+ TraceBlasGeometries , TraceBlasTriangleGeometry , TraceTlasInstance , TraceTlasPackage ,
20
28
} ,
21
29
resource:: { Blas , BlasCompactState , Buffer , Labeled , StagingBuffer , Tlas } ,
22
30
scratch:: ScratchBuffer ,
23
31
snatch:: SnatchGuard ,
24
32
track:: PendingTransition ,
25
33
} ;
26
- use crate :: { command:: EncoderStateError , device:: resource:: CommandIndices } ;
27
- use crate :: {
28
- command:: { encoder:: EncodingState , ArcCommand } ,
29
- ray_tracing:: {
30
- ArcBlasBuildEntry , ArcBlasGeometries , ArcBlasTriangleGeometry , ArcTlasInstance ,
31
- ArcTlasPackage , AsAction , AsBuild , BlasTriangleGeometryInfo , TlasBuild ,
32
- ValidateAsActionsError ,
33
- } ,
34
- resource:: InvalidResourceError ,
35
- track:: Tracker ,
36
- } ;
37
34
use crate :: { lock:: RwLockWriteGuard , resource:: RawResourceAccess } ;
38
35
39
36
use crate :: id:: { BlasId , TlasId } ;
@@ -146,7 +143,7 @@ impl Global {
146
143
}
147
144
} ;
148
145
TraceBlasBuildEntry {
149
- blas_id : blas_entry. blas_id ,
146
+ blas : blas_entry. blas_id ,
150
147
geometries,
151
148
}
152
149
} )
@@ -158,15 +155,15 @@ impl Global {
158
155
. instances
159
156
. map ( |instance| {
160
157
instance. map ( |instance| TraceTlasInstance {
161
- blas_id : instance. blas_id ,
158
+ blas : instance. blas_id ,
162
159
transform : * instance. transform ,
163
160
custom_data : instance. custom_data ,
164
161
mask : instance. mask ,
165
162
} )
166
163
} )
167
164
. collect ( ) ;
168
165
TraceTlasPackage {
169
- tlas_id : package. tlas_id ,
166
+ tlas : package. tlas_id ,
170
167
instances,
171
168
lowest_unmodified : package. lowest_unmodified ,
172
169
}
@@ -214,7 +211,7 @@ impl Global {
214
211
}
215
212
} ;
216
213
Ok ( ArcBlasBuildEntry {
217
- blas : self . resolve_blas_id ( blas_entry. blas_id ) ?,
214
+ blas : self . resolve_blas_id ( blas_entry. blas ) ?,
218
215
geometries,
219
216
} )
220
217
} )
@@ -231,7 +228,7 @@ impl Global {
231
228
. as_ref ( )
232
229
. map ( |instance| {
233
230
Ok ( ArcTlasInstance {
234
- blas : self . resolve_blas_id ( instance. blas_id ) ?,
231
+ blas : self . resolve_blas_id ( instance. blas ) ?,
235
232
transform : instance. transform ,
236
233
custom_data : instance. custom_data ,
237
234
mask : instance. mask ,
@@ -241,7 +238,7 @@ impl Global {
241
238
} )
242
239
. collect :: < Result < _ , BuildAccelerationStructureError > > ( ) ?;
243
240
Ok ( ArcTlasPackage {
244
- tlas : self . resolve_tlas_id ( tlas_package. tlas_id ) ?,
241
+ tlas : self . resolve_tlas_id ( tlas_package. tlas ) ?,
245
242
instances,
246
243
lowest_unmodified : tlas_package. lowest_unmodified ,
247
244
} )
@@ -255,8 +252,8 @@ impl Global {
255
252
256
253
pub ( crate ) fn build_acceleration_structures (
257
254
state : & mut EncodingState ,
258
- blas : Vec < ArcBlasBuildEntry > ,
259
- tlas : Vec < ArcTlasPackage > ,
255
+ blas : Vec < OwnedBlasBuildEntry < ArcReferences > > ,
256
+ tlas : Vec < OwnedTlasPackage < ArcReferences > > ,
260
257
) -> Result < ( ) , BuildAccelerationStructureError > {
261
258
state
262
259
. device
@@ -281,7 +278,7 @@ pub(crate) fn build_acceleration_structures(
281
278
& mut scratch_buffer_blas_size,
282
279
& mut blas_storage,
283
280
) ?;
284
- let mut tlas_lock_store = Vec :: < ( Option < ArcTlasPackage > , Arc < Tlas > ) > :: new ( ) ;
281
+ let mut tlas_lock_store = Vec :: < ( Option < OwnedTlasPackage < ArcReferences > > , Arc < Tlas > ) > :: new ( ) ;
285
282
286
283
for package in tlas. into_iter ( ) {
287
284
let tlas = package. tlas . clone ( ) ;
@@ -614,7 +611,7 @@ impl CommandBufferMutable {
614
611
615
612
///iterates over the blas iterator, and it's geometry, pushing the buffers into a storage vector (and also some validation).
616
613
fn iter_blas (
617
- blas_iter : impl Iterator < Item = ArcBlasBuildEntry > ,
614
+ blas_iter : impl Iterator < Item = OwnedBlasBuildEntry < ArcReferences > > ,
618
615
tracker : & mut Tracker ,
619
616
build_command : & mut AsBuild ,
620
617
buf_storage : & mut Vec < TriangleBufferStore > ,
0 commit comments