[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
Mon Sep 15 13:53:05 PDT 2025


================
@@ -225,7 +237,9 @@ static void validateRootSignature(Module &M,
             Builder.findOverlapping(ReportedBinding);
         reportOverlappingRegisters(M, ReportedBinding, Overlaping);
       });
+
   const hlsl::BoundRegs &BoundRegs = Builder.takeBoundRegs();
+  bool HasBindings = false;
----------------
inbelic wrote:

IIUC I think the logic below could be simplified a bit to something like:

```c++
    if (!Reg) {
      reportRegNotBound(M, RC, Binding);
      continue;
    }

    bool IsRootSRVOrUAV = RC == ResourceClass::SRV || RC == ResourceClass::UAV;
    bool IsRawOrStructuredBuffer = RK != ResourceKind::RawBuffer && RK != ResourceKind::StructuredBuffer;
    if (IsRootSRVOrUAV && !IsRawOrStructuredBuffer) {
      reportInvalidHandleTyError(M, RC, Binding);
      continue;
    }

    HasBindings = true;
```

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


More information about the llvm-branch-commits mailing list