Repository navigation
RDAT: Reserve mesh-node preview table identifiers - #9099
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The serialized LinAlg metadata renumbering requires coordinated compiler-package and RDAT-consumer updates, but this compatibility requirement is missing from the release notes.
1 open issue
What changed in this PR
This PR preserves RDAT compatibility with mesh-node preview metadata by reserving its serialized table IDs and relocating LinAlg tables. Compiler packages and RDAT consumers must be updated together.
Changes:
- Reserve legacy shader-info IDs 13–21 and relocate LinAlg-related tables to IDs 22–29.
- Map legacy shader-info IDs to the current reader tables.
- Add regression tests for all legacy shader-info IDs and legacy mesh info alongside relocated extended function properties.
| File | Description |
|---|---|
| tools/clang/unittests/HLSL/DxilContainerTest.cpp | Adds legacy-ID and mixed-table compatibility tests. |
| include/dxc/DxilContainer/DxilRuntimeReflection.inl | Recognizes legacy preview shader-info IDs when reading RDAT. |
| include/dxc/DxilContainer/DxilRuntimeReflection.h | Reserves preview IDs and relocates LinAlg-related table IDs. |
Review effort: Balanced
5fd25a0 to
dd0dbff
Compare
dd0dbff to
e0d2a3b
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Active experimental shader-info IDs fall within the released range, breaking the required public-enum separation, and the serialized RDAT compatibility change lacks release-note coverage.
2 open issues
Review effort: Balanced
Chris B (llvm-beanz)
left a comment
There was a problem hiding this comment.
Seems unfortunate, but reasonable to me given the constraints.
Keep the experimental shader-info tables at IDs 13-21 used by the mesh-node preview and move LinAlg tables to IDs 22-29. Use one set of identifiers for both emitted and previously compiled metadata. Gate experimental shader-info table emission independently of ID ordering. Released validated targets must omit these tables, while prerelease targets and validator 0.0 retain existing experimental behavior. Add wire-compatibility regressions and strengthen the existing SM6.10 emission checks. Compiler packages and RDAT consumers must be updated together because the new LinAlg table IDs change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9ff1c28a-cad2-4e86-9c05-8d1cc1a2744e
e0d2a3b to
0d6916c
Compare


Reserve the experimental shader-info table IDs serialized by the mesh-node preview, not just its dedicated table ID. Move the new LinAlg tables above the reserved range and recognize legacy shader-info IDs when reading RDAT.
Keep current experimental tables above the released range so released shader targets do not start emitting experimental metadata. Add regression cases for all legacy table IDs and for legacy mesh info alongside the relocated extended function properties.
Compiler packages and RDAT consumers must be updated together because the new LinAlg table IDs change.