[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