@@ -38,6 +38,10 @@ macro_rules! with_limits {
3838 $macro_name!( max_storage_textures_per_shader_stage, Ordering :: Less ) ;
3939 $macro_name!( max_uniform_buffers_per_shader_stage, Ordering :: Less ) ;
4040 $macro_name!( max_binding_array_elements_per_shader_stage, Ordering :: Less ) ;
41+ $macro_name!(
42+ max_binding_array_acceleration_structure_elements_per_shader_stage,
43+ Ordering :: Less
44+ ) ;
4145 $macro_name!( max_uniform_buffer_binding_size, Ordering :: Less ) ;
4246 $macro_name!( max_storage_buffer_binding_size, Ordering :: Less ) ;
4347 $macro_name!( max_vertex_buffers, Ordering :: Less ) ;
@@ -155,6 +159,10 @@ pub struct Limits {
155159 ///
156160 /// This "defaults" to 0. However if binding arrays are supported, all devices can support 500,000. Higher is "better".
157161 pub max_binding_array_elements_per_shader_stage : u32 ,
162+ /// Amount of individual acceleration structures within binding arrays that can be accessed in a single shader stage.
163+ ///
164+ /// This "defaults" to 0. Higher is "better".
165+ pub max_binding_array_acceleration_structure_elements_per_shader_stage : u32 ,
158166 /// Amount of individual samplers within binding arrays that can be accessed in a single shader stage.
159167 ///
160168 /// This "defaults" to 0. However if binding arrays are supported, all devices can support 1,000. Higher is "better".
@@ -318,6 +326,7 @@ impl Limits {
318326 /// max_storage_textures_per_shader_stage: 4,
319327 /// max_uniform_buffers_per_shader_stage: 12,
320328 /// max_binding_array_elements_per_shader_stage: 0,
329+ /// max_binding_array_acceleration_structure_elements_per_shader_stage: 0,
321330 /// max_binding_array_sampler_elements_per_shader_stage: 0,
322331 /// max_uniform_buffer_binding_size: 64 << 10, // (64 KiB)
323332 /// max_storage_buffer_binding_size: 128 << 20, // (128 MiB)
@@ -376,6 +385,7 @@ impl Limits {
376385 max_storage_textures_per_shader_stage : 4 ,
377386 max_uniform_buffers_per_shader_stage : 12 ,
378387 max_binding_array_elements_per_shader_stage : 0 ,
388+ max_binding_array_acceleration_structure_elements_per_shader_stage : 0 ,
379389 max_binding_array_sampler_elements_per_shader_stage : 0 ,
380390 max_uniform_buffer_binding_size : 64 << 10 , // (64 KiB)
381391 max_storage_buffer_binding_size : 128 << 20 , // (128 MiB)
@@ -438,6 +448,7 @@ impl Limits {
438448 /// max_storage_textures_per_shader_stage: 4,
439449 /// max_uniform_buffers_per_shader_stage: 12,
440450 /// max_binding_array_elements_per_shader_stage: 0,
451+ /// max_binding_array_acceleration_structure_elements_per_shader_stage: 0,
441452 /// max_binding_array_sampler_elements_per_shader_stage: 0,
442453 /// max_uniform_buffer_binding_size: 16 << 10, // * (16 KiB)
443454 /// max_storage_buffer_binding_size: 128 << 20, // (128 MiB)
@@ -516,6 +527,7 @@ impl Limits {
516527 /// max_storage_textures_per_shader_stage: 0, // +
517528 /// max_uniform_buffers_per_shader_stage: 11, // +
518529 /// max_binding_array_elements_per_shader_stage: 0,
530+ /// max_binding_array_acceleration_structure_elements_per_shader_stage: 0,
519531 /// max_binding_array_sampler_elements_per_shader_stage: 0,
520532 /// max_uniform_buffer_binding_size: 16 << 10, // * (16 KiB)
521533 /// max_storage_buffer_binding_size: 0, // * +
0 commit comments