[clang] [llvm] [DirectX] Validate registers are bound to root signature (PR #146785)

Finn Plummer via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 17 11:05:13 PDT 2025


================
@@ -24,6 +26,48 @@ using namespace llvm;
 using namespace llvm::dxil;
 
 namespace {
+static const char *ResourceClassToString(llvm::dxil::ResourceClass Class) {
+  switch (Class) {
+  case ResourceClass::SRV:
+    return "SRV";
+  case ResourceClass::UAV:
+    return "UAV";
+  case ResourceClass::CBuffer:
+    return "CBuffer";
+  case ResourceClass::Sampler:
+    return "Sampler";
+  }
+}
+
+static ResourceClass RangeToResourceClass(uint32_t RangeType) {
+  using namespace dxbc;
+  switch (static_cast<DescriptorRangeType>(RangeType)) {
+  case DescriptorRangeType::SRV:
+    return ResourceClass::SRV;
+  case DescriptorRangeType::UAV:
+    return ResourceClass::UAV;
+  case DescriptorRangeType::CBV:
+    return ResourceClass::CBuffer;
+  case DescriptorRangeType::Sampler:
+    return ResourceClass::Sampler;
+  }
+}
+
+ResourceClass ParameterToResourceClass(uint32_t Type) {
----------------
inbelic wrote:

The type has been validated before this point right? So we know it is a valid type.

Can we just do `ResourceClass(Type)` instead?

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


More information about the cfe-commits mailing list