[llvm] [DX] Support pipeline state masks (PR #66425)

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 14 15:26:56 PDT 2023


================
@@ -51,6 +51,18 @@ struct PSVRuntimeInfo {
   SmallVector<PSVSignatureElement> OutputElements;
   SmallVector<PSVSignatureElement> PatchOrPrimElements;
 
+  // The interface here is bad, and we'll want to change this in the future. We
+  // probably will want to build out these mask vectors as vectors of bools and
+  // have this utility object convert them to the bit masks. I don't want to
+  // over-engineer this API now since we don't know what the data coming in to
+  // feed it will look like, so I kept it extremely simple for the immediate use
+  // case.
+  SmallVector<uint32_t> OutputVectorMasks[4];
----------------
bogner wrote:

This leaves a lot of "4"s laying around the patch. Might be cleaner to use `std::array<SmallVector<uint32_t>, 4>` for `OutputVectorMasks` and `InputOutputMap`, and then just use `.size()` in the various places we iterate through these and their derivative types?

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


More information about the llvm-commits mailing list