Skip to content

[SM6.10] LinAlg: Implement RDAT reflection tracking and serialization - #9068

Merged
Ashley Coleman (V-FEXrt) merged 2 commits into
mainfrom
user/vfexrt/linalg-rdat
Oct 23, 2026
Merged

Ashley Coleman (V-FEXrt) merged 2 commits into
mainfrom
user/vfexrt/linalg-rdat

Conversation

@V-FEXrt

@V-FEXrt Ashley Coleman (V-FEXrt) commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

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 💬

Copilot AI balanced review requested due to automatic review settings October 22, 2026 21:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment thread include/dxc/DxilContainer/RDAT_LibraryTypes.inl Outdated
Base automatically changed from user/vfexrt/linalg-rdat1 to main October 23, 2026 16:57
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>
…tes in RDAT array wrapper'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 20:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The versioned RDAT binary-format extension warrants human confirmation of runtime and validator compatibility.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@V-FEXrt
Ashley Coleman (V-FEXrt) merged commit 544f8de into main Oct 23, 2026
13 checks passed
@V-FEXrt
Ashley Coleman (V-FEXrt) deleted the user/vfexrt/linalg-rdat branch October 23, 2026 22:09
@github-project-automation github-project-automation Bot moved this from New to Done in HLSL Roadmap Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Update RDAT for Linear Algebra

4 participants