[llvm] [HLSL] Add descriptor table metadata parsing (PR #142492)

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 19 20:54:20 PDT 2025


================
@@ -279,6 +438,22 @@ static bool validate(LLVMContext *Ctx, const mcdxbc::RootSignatureDesc &RSD) {
       }
       break;
     }
+    case llvm::to_underlying(dxbc::RootParameterType::DescriptorTable): {
+      const mcdxbc::DescriptorTable &Table =
+          RSD.ParametersContainer.getDescriptorTable(Info.Location);
+      for (const dxbc::RTS0::v2::DescriptorRange &Range : Table) {
+        if (!verifyRangeType(Range.RangeType))
+          return reportValueError(Ctx, "RangeType", Range.RangeType);
+
+        if (!verifyRegisterSpace(Range.RegisterSpace))
+          return reportValueError(Ctx, "RegisterSpace", Range.RegisterSpace);
+
+        if (!verifyDescriptorRangeFlag(RSD.Version, Range.RangeType,
+                                       Range.Flags))
+          return reportValueError(Ctx, "DescriptorFlag", Range.Flags);
----------------
bogner wrote:

Should this differentiate from non-range DescriptorFlag?
```suggestion
          return reportValueError(Ctx, "DescriptorRangeFlag", Range.Flags);
```

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


More information about the llvm-commits mailing list