From 218b65f9a8df14f8962d7ec9c9aee916aa62bfd9 Mon Sep 17 00:00:00 2001 From: Connor Fitzgerald Date: Tue, 2 Dec 2025 00:18:58 -0500 Subject: [PATCH] Add gpu-assisted validation to a few tests --- examples/features/src/big_compute_buffers/tests.rs | 1 + examples/features/src/texture_arrays/mod.rs | 9 ++++++--- tests/tests/wgpu-gpu/binding_array/buffers.rs | 4 ++++ tests/tests/wgpu-gpu/binding_array/sampled_textures.rs | 2 ++ tests/tests/wgpu-gpu/binding_array/samplers.rs | 2 ++ tests/tests/wgpu-gpu/binding_array/storage_textures.rs | 2 ++ tests/tests/wgpu-gpu/mesh_shader/mod.rs | 1 + 7 files changed, 18 insertions(+), 3 deletions(-) diff --git a/examples/features/src/big_compute_buffers/tests.rs b/examples/features/src/big_compute_buffers/tests.rs index d6c522610..2e997eea0 100644 --- a/examples/features/src/big_compute_buffers/tests.rs +++ b/examples/features/src/big_compute_buffers/tests.rs @@ -10,6 +10,7 @@ pub static TWO_BUFFERS: GpuTestConfiguration = GpuTestConfiguration::new() | Features::STORAGE_RESOURCE_BINDING_ARRAY | Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING, ) + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .downlevel_flags(wgpu::DownlevelFlags::COMPUTE_SHADERS) .limits(wgpu::Limits { max_buffer_size: MAX_BUFFER_SIZE, diff --git a/examples/features/src/texture_arrays/mod.rs b/examples/features/src/texture_arrays/mod.rs index 53908ff75..89c8dbc8f 100644 --- a/examples/features/src/texture_arrays/mod.rs +++ b/examples/features/src/texture_arrays/mod.rs @@ -438,7 +438,8 @@ pub static TEST: crate::framework::ExampleTestParams = crate::framework::Example width: 1024, height: 768, optional_features: wgpu::Features::empty(), - base_test_parameters: wgpu_test::TestParameters::default(), + base_test_parameters: wgpu_test::TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION), comparisons: &[wgpu_test::ComparisonType::Mean(0.0)], _phantom: std::marker::PhantomData::, }; @@ -452,7 +453,8 @@ pub static TEST_UNIFORM: crate::framework::ExampleTestParams = width: 1024, height: 768, optional_features: wgpu::Features::empty(), - base_test_parameters: wgpu_test::TestParameters::default(), + base_test_parameters: wgpu_test::TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION), comparisons: &[wgpu_test::ComparisonType::Mean(0.0)], _phantom: std::marker::PhantomData::, }; @@ -467,7 +469,8 @@ pub static TEST_NON_UNIFORM: crate::framework::ExampleTestParams = height: 768, optional_features: wgpu::Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING, - base_test_parameters: wgpu_test::TestParameters::default(), + base_test_parameters: wgpu_test::TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION), comparisons: &[wgpu_test::ComparisonType::Mean(0.0)], _phantom: std::marker::PhantomData::, }; diff --git a/tests/tests/wgpu-gpu/binding_array/buffers.rs b/tests/tests/wgpu-gpu/binding_array/buffers.rs index aa2c93496..913cc2934 100644 --- a/tests/tests/wgpu-gpu/binding_array/buffers.rs +++ b/tests/tests/wgpu-gpu/binding_array/buffers.rs @@ -18,6 +18,7 @@ pub fn all_tests(tests: &mut Vec) { static BINDING_ARRAY_UNIFORM_BUFFERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features(Features::BUFFER_BINDING_ARRAY | Features::UNIFORM_BUFFER_BINDING_ARRAYS) .limits(Limits { max_binding_array_elements_per_shader_stage: 16, @@ -36,6 +37,7 @@ static BINDING_ARRAY_UNIFORM_BUFFERS: GpuTestConfiguration = GpuTestConfiguratio static PARTIAL_BINDING_ARRAY_UNIFORM_BUFFERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::BUFFER_BINDING_ARRAY | Features::PARTIALLY_BOUND_BINDING_ARRAY @@ -58,6 +60,7 @@ static PARTIAL_BINDING_ARRAY_UNIFORM_BUFFERS: GpuTestConfiguration = GpuTestConf static BINDING_ARRAY_STORAGE_BUFFERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::BUFFER_BINDING_ARRAY | Features::STORAGE_RESOURCE_BINDING_ARRAY @@ -76,6 +79,7 @@ static BINDING_ARRAY_STORAGE_BUFFERS: GpuTestConfiguration = GpuTestConfiguratio static PARTIAL_BINDING_ARRAY_STORAGE_BUFFERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::BUFFER_BINDING_ARRAY | Features::PARTIALLY_BOUND_BINDING_ARRAY diff --git a/tests/tests/wgpu-gpu/binding_array/sampled_textures.rs b/tests/tests/wgpu-gpu/binding_array/sampled_textures.rs index 12a4ec0f8..8c67b9ac2 100644 --- a/tests/tests/wgpu-gpu/binding_array/sampled_textures.rs +++ b/tests/tests/wgpu-gpu/binding_array/sampled_textures.rs @@ -17,6 +17,7 @@ pub fn all_tests(tests: &mut Vec) { static BINDING_ARRAY_SAMPLED_TEXTURES: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING, @@ -32,6 +33,7 @@ static BINDING_ARRAY_SAMPLED_TEXTURES: GpuTestConfiguration = GpuTestConfigurati static PARTIAL_BINDING_ARRAY_SAMPLED_TEXTURES: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING diff --git a/tests/tests/wgpu-gpu/binding_array/samplers.rs b/tests/tests/wgpu-gpu/binding_array/samplers.rs index d6f50393b..61407b530 100644 --- a/tests/tests/wgpu-gpu/binding_array/samplers.rs +++ b/tests/tests/wgpu-gpu/binding_array/samplers.rs @@ -13,6 +13,7 @@ pub fn all_tests(tests: &mut Vec) { static BINDING_ARRAY_SAMPLERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING, @@ -29,6 +30,7 @@ static BINDING_ARRAY_SAMPLERS: GpuTestConfiguration = GpuTestConfiguration::new( static PARTIAL_BINDING_ARRAY_SAMPLERS: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING diff --git a/tests/tests/wgpu-gpu/binding_array/storage_textures.rs b/tests/tests/wgpu-gpu/binding_array/storage_textures.rs index 818c4bee5..0acc84f1e 100644 --- a/tests/tests/wgpu-gpu/binding_array/storage_textures.rs +++ b/tests/tests/wgpu-gpu/binding_array/storage_textures.rs @@ -17,6 +17,7 @@ pub fn all_tests(tests: &mut Vec) { static BINDING_ARRAY_STORAGE_TEXTURES: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::STORAGE_RESOURCE_BINDING_ARRAY @@ -34,6 +35,7 @@ static BINDING_ARRAY_STORAGE_TEXTURES: GpuTestConfiguration = GpuTestConfigurati static PARTIAL_BINDING_ARRAY_STORAGE_TEXTURES: GpuTestConfiguration = GpuTestConfiguration::new() .parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .features( Features::TEXTURE_BINDING_ARRAY | Features::PARTIALLY_BOUND_BINDING_ARRAY diff --git a/tests/tests/wgpu-gpu/mesh_shader/mod.rs b/tests/tests/wgpu-gpu/mesh_shader/mod.rs index 06840850b..9178b215a 100644 --- a/tests/tests/wgpu-gpu/mesh_shader/mod.rs +++ b/tests/tests/wgpu-gpu/mesh_shader/mod.rs @@ -393,6 +393,7 @@ fn mesh_draw(ctx: &TestingContext, draw_type: DrawType) { fn default_gpu_test_config(draw_type: DrawType) -> GpuTestConfiguration { GpuTestConfiguration::new().parameters( TestParameters::default() + .instance_flags(wgpu::InstanceFlags::GPU_BASED_VALIDATION) .test_features_limits() .features( wgpu::Features::EXPERIMENTAL_MESH_SHADER