From 964d9204bca95d9127df68fd6d02cb5f1496fc99 Mon Sep 17 00:00:00 2001 From: teoxoy <28601907+teoxoy@users.noreply.github.com> Date: Thu, 16 Feb 2023 21:44:06 +0100 Subject: [PATCH] add `Capabilities::EARLY_DEPTH_TEST` --- src/valid/interface.rs | 14 ++++++++++++-- src/valid/mod.rs | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/valid/interface.rs b/src/valid/interface.rs index 727480b15f..41f2666120 100644 --- a/src/valid/interface.rs +++ b/src/valid/interface.rs @@ -509,8 +509,18 @@ impl super::Validator { mod_info: &ModuleInfo, ) -> Result> { #[cfg(feature = "validate")] - if ep.early_depth_test.is_some() && ep.stage != crate::ShaderStage::Fragment { - return Err(EntryPointError::UnexpectedEarlyDepthTest.with_span()); + if ep.early_depth_test.is_some() { + let required = Capabilities::EARLY_DEPTH_TEST; + if !self.capabilities.contains(required) { + return Err( + EntryPointError::Result(VaryingError::UnsupportedCapability(required)) + .with_span(), + ); + } + + if ep.stage != crate::ShaderStage::Fragment { + return Err(EntryPointError::UnexpectedEarlyDepthTest.with_span()); + } } #[cfg(feature = "validate")] diff --git a/src/valid/mod.rs b/src/valid/mod.rs index a4c94bac20..ab4d81cb16 100644 --- a/src/valid/mod.rs +++ b/src/valid/mod.rs @@ -108,6 +108,8 @@ bitflags::bitflags! { const STORAGE_TEXTURE_16BIT_NORM_FORMATS = 0x100; /// Support for [`BuiltIn::ViewIndex`]. const MULTIVIEW = 0x200; + /// Support for `early_depth_test`. + const EARLY_DEPTH_TEST = 0x400; } }