[llvm-branch-commits] [llvm] [DirectX] Validating Root flags are denying shader stage (PR #153287)

Finn Plummer via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 21 13:06:48 PDT 2025


================
@@ -205,7 +205,57 @@ getRootDescriptorsBindingInfo(const mcdxbc::RootSignatureDesc &RSD,
   return RDs;
 }
 
-static void validateRootSignatureBindings(Module &M,
+static void reportIfDeniedShaderStageAccess(Module &M, dxbc::RootFlags Flags,
+                                            dxbc::RootFlags Mask) {
+  if ((Flags & Mask) == Mask) {
+    SmallString<128> Message;
+    raw_svector_ostream OS(Message);
+    OS << "Shader has root bindings but root signature uses a DENY flag to "
+          "disallow root binding access to the shader stage.";
+    M.getContext().diagnose(DiagnosticInfoGeneric(Message));
+  }
+}
+
+static void validateDeniedStagedNotInUse(Module &M,
+                                         const mcdxbc::RootSignatureDesc &RSD,
+                                         const dxil::ModuleMetadataInfo &MMI) {
+  dxbc::RootFlags Flags = dxbc::RootFlags(RSD.Flags);
+
----------------
inbelic wrote:

Can we add a validation to `RootsignatureValidations` like `validateShaderStage(Flags, ShaderProfile)` so that it can be re-used in the frontend?

https://github.com/llvm/llvm-project/pull/153287


More information about the llvm-branch-commits mailing list