Skip to content

Commit dc0d457

Browse files
authored
Add limits for acceleration structures (#7845)
1 parent 9d14871 commit dc0d457

File tree

25 files changed

+354
-16
lines changed

25 files changed

+354
-16
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ Bottom level categories:
5252
- Add support for astc-sliced-3d feature. By @mehmetoguzderin in [#7577](https://github.com/gfx-rs/wgpu/issues/7577)
5353
- Add support for rendering to slices of 3D texture views and single layered 2D-Array texture views (this requires `VK_KHR_maintenance1` which should be widely available on newer drivers). By @teoxoy in [#7596](https://github.com/gfx-rs/wgpu/pull/7596)
5454
- Add extra acceleration structure vertex formats. By @Vecvec in [#7580](https://github.com/gfx-rs/wgpu/pull/7580).
55+
- Add acceleration structure limits. By @Vecvec in [#7845](https://github.com/gfx-rs/wgpu/pull/7845).
5556
- Add support for clip-distances feature for Vulkan and GL backends. By @dzamkov in [#7730](https://github.com/gfx-rs/wgpu/pull/7730)
5657

5758
#### Naga

examples/features/src/ray_cube_compute/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ impl crate::framework::Example for Example {
156156
}
157157

158158
fn required_limits() -> wgpu::Limits {
159-
wgpu::Limits::default()
159+
wgpu::Limits::default().using_minimum_supported_acceleration_structure_values()
160160
}
161161

162162
fn init(

examples/features/src/ray_cube_fragment/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ impl crate::framework::Example for Example {
119119
}
120120

121121
fn required_limits() -> wgpu::Limits {
122-
wgpu::Limits::default()
122+
wgpu::Limits::default().using_minimum_supported_acceleration_structure_values()
123123
}
124124

125125
fn init(

examples/features/src/ray_cube_normals/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ impl crate::framework::Example for Example {
146146
}
147147

148148
fn required_limits() -> wgpu::Limits {
149-
wgpu::Limits::default()
149+
wgpu::Limits::default().using_minimum_supported_acceleration_structure_values()
150150
}
151151

152152
fn init(

examples/features/src/ray_scene/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ impl crate::framework::Example for Example {
329329
}
330330

331331
fn required_limits() -> wgpu::Limits {
332-
wgpu::Limits::default()
332+
wgpu::Limits::default().using_minimum_supported_acceleration_structure_values()
333333
}
334334

335335
fn init(

examples/features/src/ray_shadows/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ impl crate::framework::Example for Example {
121121
max_push_constant_size: 12,
122122
..wgpu::Limits::default()
123123
}
124+
.using_minimum_supported_acceleration_structure_values()
124125
}
125126

126127
fn init(

examples/features/src/ray_traced_triangle/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl crate::framework::Example for Example {
3434
}
3535

3636
fn required_limits() -> wgpu::Limits {
37-
wgpu::Limits::default()
37+
wgpu::Limits::default().using_minimum_supported_acceleration_structure_values()
3838
}
3939

4040
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {

tests/tests/wgpu-gpu/ray_tracing/as_build.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::iter;
22

3-
use crate::ray_tracing::AsBuildContext;
3+
use crate::ray_tracing::{acceleration_structure_limits, AsBuildContext};
44
use wgpu::util::{BufferInitDescriptor, DeviceExt};
55
use wgpu::*;
66
use wgpu_test::{
@@ -12,6 +12,7 @@ static UNBUILT_BLAS: GpuTestConfiguration = GpuTestConfiguration::new()
1212
.parameters(
1313
TestParameters::default()
1414
.test_features_limits()
15+
.limits(acceleration_structure_limits())
1516
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
1617
// https://github.com/gfx-rs/wgpu/issues/6727
1718
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -46,6 +47,7 @@ static UNBUILT_BLAS_COMPACTION: GpuTestConfiguration = GpuTestConfiguration::new
4647
.parameters(
4748
TestParameters::default()
4849
.test_features_limits()
50+
.limits(acceleration_structure_limits())
4951
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
5052
// https://github.com/gfx-rs/wgpu/issues/6727
5153
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -74,6 +76,7 @@ static BLAS_COMPACTION_WITHOUT_FLAGS: GpuTestConfiguration = GpuTestConfiguratio
7476
.parameters(
7577
TestParameters::default()
7678
.test_features_limits()
79+
.limits(acceleration_structure_limits())
7780
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
7881
// https://github.com/gfx-rs/wgpu/issues/6727
7982
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -110,6 +113,7 @@ static UNPREPARED_BLAS_COMPACTION: GpuTestConfiguration = GpuTestConfiguration::
110113
.parameters(
111114
TestParameters::default()
112115
.test_features_limits()
116+
.limits(acceleration_structure_limits())
113117
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
114118
// https://github.com/gfx-rs/wgpu/issues/6727
115119
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -139,6 +143,7 @@ static BLAS_COMPACTION: GpuTestConfiguration = GpuTestConfiguration::new()
139143
.parameters(
140144
TestParameters::default()
141145
.test_features_limits()
146+
.limits(acceleration_structure_limits())
142147
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
143148
// https://github.com/gfx-rs/wgpu/issues/6727
144149
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -197,6 +202,7 @@ static OUT_OF_ORDER_AS_BUILD: GpuTestConfiguration = GpuTestConfiguration::new()
197202
.parameters(
198203
TestParameters::default()
199204
.test_features_limits()
205+
.limits(acceleration_structure_limits())
200206
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
201207
// https://github.com/gfx-rs/wgpu/issues/6727
202208
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -280,6 +286,7 @@ static OUT_OF_ORDER_AS_BUILD_USE: GpuTestConfiguration = GpuTestConfiguration::n
280286
.parameters(
281287
TestParameters::default()
282288
.test_features_limits()
289+
.limits(acceleration_structure_limits())
283290
.features(
284291
wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE
285292
| wgpu::Features::EXPERIMENTAL_RAY_QUERY,
@@ -466,6 +473,7 @@ static EMPTY_BUILD: GpuTestConfiguration = GpuTestConfiguration::new()
466473
.parameters(
467474
TestParameters::default()
468475
.test_features_limits()
476+
.limits(acceleration_structure_limits())
469477
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE),
470478
)
471479
.run_sync(empty_build);
@@ -486,6 +494,7 @@ static BUILD_WITH_TRANSFORM: GpuTestConfiguration = GpuTestConfiguration::new()
486494
.parameters(
487495
TestParameters::default()
488496
.test_features_limits()
497+
.limits(acceleration_structure_limits())
489498
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
490499
// https://github.com/gfx-rs/wgpu/issues/6727
491500
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -572,6 +581,7 @@ static ONLY_BLAS_VERTEX_RETURN: GpuTestConfiguration = GpuTestConfiguration::new
572581
.parameters(
573582
TestParameters::default()
574583
.test_features_limits()
584+
.limits(acceleration_structure_limits())
575585
.features(
576586
wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE
577587
| wgpu::Features::EXPERIMENTAL_RAY_QUERY
@@ -698,6 +708,7 @@ static ONLY_TLAS_VERTEX_RETURN: GpuTestConfiguration = GpuTestConfiguration::new
698708
.parameters(
699709
TestParameters::default()
700710
.test_features_limits()
711+
.limits(acceleration_structure_limits())
701712
.features(
702713
wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE
703714
| wgpu::Features::EXPERIMENTAL_RAY_QUERY
@@ -739,6 +750,7 @@ static EXTRA_FORMAT_BUILD: GpuTestConfiguration = GpuTestConfiguration::new()
739750
.parameters(
740751
TestParameters::default()
741752
.test_features_limits()
753+
.limits(acceleration_structure_limits())
742754
.features(
743755
wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE
744756
| wgpu::Features::EXTENDED_ACCELERATION_STRUCTURE_VERTEX_FORMATS,
@@ -753,6 +765,7 @@ static MISALIGNED_BUILD: GpuTestConfiguration = GpuTestConfiguration::new()
753765
.parameters(
754766
TestParameters::default()
755767
.test_features_limits()
768+
.limits(acceleration_structure_limits())
756769
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
757770
// https://github.com/gfx-rs/wgpu/issues/6727
758771
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),
@@ -765,6 +778,7 @@ static TOO_SMALL_STRIDE_BUILD: GpuTestConfiguration = GpuTestConfiguration::new(
765778
.parameters(
766779
TestParameters::default()
767780
.test_features_limits()
781+
.limits(acceleration_structure_limits())
768782
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE)
769783
// https://github.com/gfx-rs/wgpu/issues/6727
770784
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),

tests/tests/wgpu-gpu/ray_tracing/as_create.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::ray_tracing::acceleration_structure_limits;
12
use wgpu::{
23
AccelerationStructureFlags, AccelerationStructureGeometryFlags,
34
AccelerationStructureUpdateMode, BlasGeometrySizeDescriptors,
@@ -12,6 +13,7 @@ static BLAS_INVALID_VERTEX_FORMAT: GpuTestConfiguration = GpuTestConfiguration::
1213
.parameters(
1314
TestParameters::default()
1415
.test_features_limits()
16+
.limits(acceleration_structure_limits())
1517
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE),
1618
)
1719
.run_sync(invalid_vertex_format_blas_create);
@@ -52,6 +54,7 @@ static BLAS_MISMATCHED_INDEX: GpuTestConfiguration = GpuTestConfiguration::new()
5254
.parameters(
5355
TestParameters::default()
5456
.test_features_limits()
57+
.limits(acceleration_structure_limits())
5558
.features(wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE),
5659
)
5760
.run_sync(mismatched_index_blas_create);

tests/tests/wgpu-gpu/ray_tracing/as_use_after_free.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::ray_tracing::acceleration_structure_limits;
12
use std::{iter, mem};
23
use wgpu::{
34
include_wgsl,
@@ -145,6 +146,7 @@ static ACCELERATION_STRUCTURE_USE_AFTER_FREE: GpuTestConfiguration = GpuTestConf
145146
.parameters(
146147
TestParameters::default()
147148
.test_features_limits()
149+
.limits(acceleration_structure_limits())
148150
.features(required_features())
149151
// https://github.com/gfx-rs/wgpu/issues/6727
150152
.skip(FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")),

0 commit comments

Comments
 (0)