Repository navigation
[SM6.10] LinAlg: Implement RDAT reflection tracking and serialization - #9068
Merged
Merged
Conversation
Damyan Pepper (damyanp)
approved these changes
Oct 22, 2026
Chris B (llvm-beanz)
approved these changes
Oct 22, 2026
Ashley Coleman (V-FEXrt)
force-pushed
the
user/vfexrt/linalg-rdat
branch
from
October 22, 2026 21:18
1f0c8f9 to
6783601
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The matrix-construction record needs explicit storage for all three reserved bytes to match its generated reader and serialized layout.
1 open issue
What changed in this PR
This PR adds SM 6.10 linear algebra runtime reflection data (RDAT) for library shaders, supporting the reflection work tracked in #7842.
Changes:
- Defines version-gated LinAlg record tables and extended function properties.
- Collects per-function usage, propagates it to callers, and serializes deduplicated records.
- Adds tests for reflection output, version compatibility, helper propagation, and library linking.
| File | Description |
|---|---|
| tools/clang/test/CodeGenDXIL/reflection/linalg_rdat.hlsl | Tests operation records, propagation, and deduplication. |
| tools/clang/test/CodeGenDXIL/reflection/linalg_rdat_version.hlsl | Tests version gating and empty-table omission. |
| tools/clang/test/CodeGenDXIL/reflection/linalg_rdat_unknown_layout.hlsl | Tests conservative flags for unknown matrix layouts. |
| tools/clang/test/CodeGenDXIL/reflection/linalg_rdat_matvec_helpers.hlsl | Tests zero-flag propagation through helper calls. |
| tools/clang/test/CodeGenDXIL/reflection/linalg_rdat_link.hlsl | Tests overlapping and disjoint records after linking. |
| lib/DxilContainer/DxilContainerAssembler.cpp | Collects, propagates, and serializes LinAlg usage. |
| include/dxc/DxilContainer/RDAT_LibraryTypes.inl | Defines LinAlg records and extended function properties. |
| include/dxc/DxilContainer/DxilRuntimeReflection.h | Registers new tables and validator-version limits. |
Review effort: Balanced
Define validator-1.10 function properties and LinAlg record tables, collect per-function requirements, propagate them through callers, and serialize deduplicated RDAT records. Cover version gating, empty properties, helper propagation, conservative layouts, and overlapping and disjoint library links. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ashley Coleman (V-FEXrt)
force-pushed
the
user/vfexrt/linalg-rdat
branch
from
October 23, 2026 16:57
6783601 to
891b5c6
Compare
…tes in RDAT array wrapper' Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Chris B (llvm-beanz)
approved these changes
Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Defines LinAlg RDAT record tables, collects per-function usage and propagates it, and serializes the deduplicated records
Fixes #7842
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
Stack created with GitHub Stacks CLI • Give Feedback 💬