Ensure raytracing tests run on slightly downlevel adapters

This commit is contained in:
Connor Fitzgerald 2025-04-16 13:58:22 -04:00 committed by Erich Gubler
parent 6efeae98dd
commit defca6ee35
6 changed files with 45 additions and 62 deletions

View File

@ -147,8 +147,12 @@ impl crate::framework::Example for Example {
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities::default() wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
} }
fn required_limits() -> wgpu::Limits { fn required_limits() -> wgpu::Limits {
wgpu::Limits::default() wgpu::Limits::default()
} }
@ -490,15 +494,7 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default(),
required_features: <Example as crate::framework::Example>::required_features(),
required_limits: <Example as crate::framework::Example>::required_limits(),
skips: vec![],
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };

View File

@ -111,8 +111,12 @@ impl crate::framework::Example for Example {
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities::default() wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
} }
fn required_limits() -> wgpu::Limits { fn required_limits() -> wgpu::Limits {
wgpu::Limits::default() wgpu::Limits::default()
} }
@ -377,15 +381,7 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default(),
required_features: <Example as crate::framework::Example>::required_features(),
required_limits: <Example as crate::framework::Example>::required_limits(),
skips: vec![],
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };

View File

@ -138,8 +138,12 @@ impl crate::framework::Example for Example {
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities::default() wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
} }
fn required_limits() -> wgpu::Limits { fn required_limits() -> wgpu::Limits {
wgpu::Limits::default() wgpu::Limits::default()
} }
@ -478,16 +482,10 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default().expect_fail(
required_features: <Example as crate::framework::Example>::required_features(), wgpu_test::FailureCase::backend_adapter(wgpu::Backends::VULKAN, "AMD")
required_limits: <Example as crate::framework::Example>::required_limits(), .panic("Image data mismatch"),
force_fxc: false, ),
skips: vec![],
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };

View File

@ -321,8 +321,12 @@ impl crate::framework::Example for Example {
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities::default() wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
} }
fn required_limits() -> wgpu::Limits { fn required_limits() -> wgpu::Limits {
wgpu::Limits::default() wgpu::Limits::default()
} }
@ -557,15 +561,10 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default().expect_fail(
required_features: <Example as crate::framework::Example>::required_features(), wgpu_test::FailureCase::backend_adapter(wgpu::Backends::VULKAN, "llvmpipe")
required_limits: <Example as crate::framework::Example>::required_limits(), .panic("Image data mismatch"),
skips: vec![], ),
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };

View File

@ -108,8 +108,12 @@ impl crate::framework::Example for Example {
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities::default() wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
} }
fn required_limits() -> wgpu::Limits { fn required_limits() -> wgpu::Limits {
wgpu::Limits { wgpu::Limits {
max_push_constant_size: 12, max_push_constant_size: 12,
@ -368,20 +372,12 @@ pub fn main() {
#[cfg(test)] #[cfg(test)]
#[wgpu_test::gpu_test] #[wgpu_test::gpu_test]
static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTestParams { static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTestParams {
name: "ray_cube_shadows", name: "ray_shadows",
image_path: "/examples/features/src/ray_shadows/screenshot.png", image_path: "/examples/features/src/ray_shadows/screenshot.png",
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default(),
required_features: <Example as crate::framework::Example>::required_features(),
required_limits: <Example as crate::framework::Example>::required_limits(),
skips: vec![],
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };

View File

@ -36,6 +36,13 @@ impl crate::framework::Example for Example {
wgpu::Limits::default() wgpu::Limits::default()
} }
fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities {
wgpu::DownlevelCapabilities {
flags: wgpu::DownlevelFlags::COMPUTE_SHADERS,
..Default::default()
}
}
fn init( fn init(
config: &wgpu::SurfaceConfiguration, config: &wgpu::SurfaceConfiguration,
_adapter: &wgpu::Adapter, _adapter: &wgpu::Adapter,
@ -431,16 +438,7 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest
width: 1024, width: 1024,
height: 768, height: 768,
optional_features: wgpu::Features::default(), optional_features: wgpu::Features::default(),
base_test_parameters: wgpu_test::TestParameters { base_test_parameters: wgpu_test::TestParameters::default(),
required_features: <Example as crate::framework::Example>::required_features(),
required_limits: <Example as crate::framework::Example>::required_limits(),
force_fxc: false,
skips: vec![],
failures: Vec::new(),
required_downlevel_caps:
<Example as crate::framework::Example>::required_downlevel_capabilities(),
..Default::default()
},
comparisons: &[wgpu_test::ComparisonType::Mean(0.02)], comparisons: &[wgpu_test::ComparisonType::Mean(0.02)],
_phantom: std::marker::PhantomData::<Example>, _phantom: std::marker::PhantomData::<Example>,
}; };