[llvm-branch-commits] [llvm] [DirectX] Adding missing descriptor table validations (PR #153276)

Finn Plummer via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Aug 25 15:24:25 PDT 2025


================
@@ -180,6 +180,33 @@ bool verifyBorderColor(uint32_t BorderColor) {
 
 bool verifyLOD(float LOD) { return !std::isnan(LOD); }
 
+bool verifyOffsetOverflow(uint32_t Offset, uint64_t Register) {
+  if (Offset != ~0U)
+    Register = Offset;
+
+  if (Register > ~0U)
+    return true;
+  return false;
+}
+
+bool verifyRegisterOverflow(uint64_t Register, uint32_t NumDescriptors) {
+  if (NumDescriptors == ~0U)
+    return false;
+
+  uint64_t UpperBound =
+      (uint64_t)Register + (uint64_t)NumDescriptors - (uint64_t)1U;
+  if (UpperBound > ~0U)
+    return true;
+
+  return false;
+}
+
+uint64_t updateAppendingRegister(uint64_t AppendingRegisterRegister,
+                                 uint32_t NumDescriptors) {
+  if (NumDescriptors == ~0U)
+    return (uint64_t)~0U + (uint64_t)1ULL;
+  return AppendingRegisterRegister + NumDescriptors;
----------------
inbelic wrote:

This is also dependent on the current offset.

```suggestion
  return Offset == append ? AppendingRegisterRegister + NumDescriptors : Offset + NumDescriptors;
```

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


More information about the llvm-branch-commits mailing list