diff --git a/CHANGELOG.md b/CHANGELOG.md index 83a64a5d9b9..5df6b053262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -90,6 +90,7 @@ Bottom level categories: - `wgpu-types`'s `trace` and `replay` features have been replaced by the `serde` feature. By @KirmesBude in [#5149](https://github.com/gfx-rs/wgpu/pull/5149) - `wgpu-core`'s `serial-pass` feature has been removed. Use `serde` instead. By @KirmesBude in [#5149](https://github.com/gfx-rs/wgpu/pull/5149) - Added `InstanceFlags::GPU_BASED_VALIDATION`, which enables GPU-based validation for shaders. This is currently only supported on the DX12 and Vulkan backends; other platforms ignore this flag, for now. + - When set, this flag implies `InstanceFlags::VALIDATION`. - This has been added to the set of flags set by `InstanceFlags::debugging` and `InstanceFlags::from_build_config`. If you notice your graphics workloads running more slowly, this may be the culprit. - As with other instance flags, this flag can be changed in calls to `InstanceFlags::with_env` with the new `WGPU_GPU_BASED_VALIDATION` environment variable. diff --git a/examples/src/water/mod.rs b/examples/src/water/mod.rs index e1a80b1e4f3..262a211bec5 100644 --- a/examples/src/water/mod.rs +++ b/examples/src/water/mod.rs @@ -826,7 +826,23 @@ static TEST: crate::framework::ExampleTestParams = crate::framework::ExampleTest height: 768, optional_features: wgpu::Features::default(), base_test_parameters: wgpu_test::TestParameters::default() - .downlevel_flags(wgpu::DownlevelFlags::READ_ONLY_DEPTH_STENCIL), + .downlevel_flags(wgpu::DownlevelFlags::READ_ONLY_DEPTH_STENCIL) + // To be fixed in . + .expect_fail(wgpu_test::FailureCase { + backends: Some(wgpu::Backends::VULKAN), + reasons: vec![wgpu_test::FailureReason::validation_error().with_message(concat!( + "vkCmdEndRenderPass: ", + "Hazard WRITE_AFTER_READ in subpass 0 for attachment 1 depth aspect ", + "during store with storeOp VK_ATTACHMENT_STORE_OP_STORE. ", + "Access info (", + "usage: SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE, ", + "prior_usage: SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, ", + "read_barriers: VkPipelineStageFlags2(0), ", + "command: vkCmdDraw" + ))], + behavior: wgpu_test::FailureBehavior::AssertFailure, + ..Default::default() + }), comparisons: &[wgpu_test::ComparisonType::Mean(0.01)], _phantom: std::marker::PhantomData::, }; diff --git a/wgpu-types/src/lib.rs b/wgpu-types/src/lib.rs index 0346e0b9161..9473ab3842c 100644 --- a/wgpu-types/src/lib.rs +++ b/wgpu-types/src/lib.rs @@ -904,8 +904,8 @@ bitflags::bitflags! { /// This mainly applies to a Vulkan driver's compliance version. If the major compliance version /// is `0`, then the driver is ignored. This flag allows that driver to be enabled for testing. const ALLOW_UNDERLYING_NONCOMPLIANT_ADAPTER = 1 << 3; - /// Enable GPU-based validation. Currently, this only changes behavior on the DX12 and - /// Vulkan backends. + /// Enable GPU-based validation. Implies [`Self::VALIDATION`]. Currently, this only changes + /// behavior on the DX12 and Vulkan backends. /// /// Supported platforms: ///