[SM6.10] Promote experimental DXIL ops to retail - #8956
Conversation
Fixes #8953 Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The significant user-visible promotion lacks the required upcoming-release note.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Promotes Shader Model 6.10 DXIL operations from experimental to retail opcode space.
Changes:
- Assigns retail opcodes 312–344 and reserves former experimental slots.
- Updates generated DXIL documentation and instruction definitions.
- Migrates code-generation and validation tests to retail opcode values.
| File | Description |
|---|---|
utils/hct/hctdb.py |
Promotes operations and advances experimental SM. |
tools/clang/test/LitDXILValidation/triangle_positions-validation.ll |
Updates triangle-position validation opcodes. |
tools/clang/test/LitDXILValidation/triangle_position_passing.ll |
Updates valid triangle-position opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-vectoraccumulatetodescriptor.ll |
Updates vector-accumulate opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-undef-param.ll |
Updates undefined-parameter test opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-stage-cs.ll |
Updates compute-stage LinAlg opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-stage-as.ll |
Updates amplification-stage LinAlg opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-outerproduct.ll |
Updates outer-product opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-non-thread-ops.ll |
Updates non-thread operation opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-no-bitcast2.ll |
Updates matrix bitcast test opcode. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-no-bitcast1.ll |
Updates matrix bitcast test opcode. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matvecmul.ll |
Updates matrix-vector multiplication opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixstoretodescriptor.ll |
Updates descriptor-store opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixmultiply.ll |
Updates matrix-multiply opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixloadfrommemory.ll |
Updates memory-load opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixloadfromdescriptor.ll |
Updates descriptor-load opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixaccumulatetodescriptor.ll |
Updates descriptor-accumulate opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-matrixaccumulate.ll |
Updates matrix-accumulate opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-illegal-component-type.ll |
Updates illegal-component validation opcode. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-groupshared-vector-memory.ll |
Updates groupshared-memory opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-groupshared-vector-memory-invalid.ll |
Updates invalid groupshared-memory opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-copyconvert.ll |
Updates copy-convert opcodes. |
tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-convert.ll |
Updates vector-conversion opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-vs.ll |
Updates vertex-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-raytracing.ll |
Updates ray-tracing group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-ps.ll |
Updates pixel-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-node.ll |
Updates node-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-hs.ll |
Updates hull-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-gs.ll |
Updates geometry-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/GroupWave/group-wave-invalid-ds.ll |
Updates domain-stage group-wave opcodes. |
tools/clang/test/LitDXILValidation/clusterid-validation.ll |
Updates ClusterID validation opcodes. |
tools/clang/test/LitDXILValidation/clusterid_passing.ll |
Updates valid ClusterID opcodes. |
tools/clang/test/HLSLFileCheckLit/hlsl/intrinsics/wave/group-wave-index.hlsl |
Expects retail group-wave opcodes. |
tools/clang/test/HLSLFileCheckLit/hlsl/intrinsics/basic/isdebuggingenabled.hlsl |
Expects retail debugging-query opcode. |
tools/clang/test/HLSLFileCheckLit/hlsl/intrinsics/basic/debugbreak.hlsl |
Expects retail debug-break opcode. |
tools/clang/test/DXC/Passes/DxilGen/triangle_positions_dxilgen.ll |
Updates triangle-position lowering checks. |
tools/clang/test/DXC/Passes/DxilGen/isdebuggingenabled.ll |
Updates debugging-query lowering check. |
tools/clang/test/DXC/Passes/DxilGen/group-wave-index.ll |
Updates group-wave lowering checks. |
tools/clang/test/DXC/Passes/DxilGen/debugbreak.ll |
Updates debug-break lowering check. |
tools/clang/test/DXC/Passes/DxilGen/clusterid_dxilgen.ll |
Updates ClusterID lowering checks. |
tools/clang/test/DXC/experimental-dxil-6-10-op.ll |
Verifies experimental Nop is rejected by SM 6.10. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/matrix-target-type-in-struct.hlsl |
Updates matrix-fill opcode check. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/vectoraccumulatetodescriptor/nominal.hlsl |
Updates vector-accumulate codegen check. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixvectormultiplyadd/nominal.hlsl |
Updates multiply-add codegen checks. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixvectormultiply/nominal.hlsl |
Updates matrix-vector codegen check. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixstoretomemory/vector-array.hlsl |
Updates vector-array store opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixstoretomemory/nominal.hlsl |
Updates memory-store opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixstoretodescriptor/nominal.hlsl |
Updates descriptor-store opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixsetelement/nominal.hlsl |
Updates element-set opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixqueryaccumulatorlayout/nominal.hlsl |
Updates layout-query opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixouterproduct/nominal.hlsl |
Updates outer-product codegen checks. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixmatrixmultiplyaccumulate/nominal.hlsl |
Updates multiply-accumulate opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixmatrixmultiply/nominal.hlsl |
Updates matrix-multiply opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixloadfrommemory/vector-array.hlsl |
Updates vector-array load opcodes. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixloadfrommemory/nominal.hlsl |
Updates memory-load opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixloadfromdescriptor/nominal.hlsl |
Updates descriptor-load opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixlength/nominal.hlsl |
Updates matrix-length opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixgetelement/nominal.hlsl |
Updates element-access opcodes. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixgetcoordinate/nominal.hlsl |
Updates coordinate-query opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixaccumulatetomemory/vector-array.hlsl |
Updates vector-array accumulation opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixaccumulatetomemory/nominal.hlsl |
Updates memory-accumulation opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixaccumulatetodescriptor/nominal.hlsl |
Updates descriptor-accumulation opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixaccumulate/nominal.hlsl |
Updates matrix-accumulate opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/fillmatrix/nominal.hlsl |
Updates matrix-fill opcodes. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/copyconvertmatrix/nominal.hlsl |
Updates copy-convert opcode. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/convert/nominal.hlsl |
Updates conversion opcodes. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/api/matrix-multiply.hlsl |
Updates matrix API opcode checks. |
tools/clang/test/CodeGenDXIL/hlsl/linalg/api/matrix-groupshared-vector-array.hlsl |
Updates groupshared matrix API checks. |
tools/clang/test/CodeGenDXIL/hlsl/intrinsics/triangle_positions.hlsl |
Updates triangle-position intrinsic checks. |
tools/clang/test/CodeGenDXIL/hlsl/intrinsics/clusterid.hlsl |
Updates ClusterID intrinsic checks. |
tools/clang/test/CodeGenDXIL/hlsl/intrinsics/clusterid_invalid_constant.hlsl |
Updates invalid ClusterID test opcode. |
tools/clang/test/CodeGenDXIL/hlsl/builtin_triangle_positions.hlsl |
Updates built-in triangle-position opcode. |
include/dxc/DXIL/DxilInstructions.h |
Reorders generated instruction wrappers. |
docs/DXIL.rst |
Documents retail and reserved opcodes. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| # End of DXIL 1.10 opcodes. | ||
| op_count = set_op_count_for_version(1, 10) |
There was a problem hiding this comment.
Next PR will be the one to mint SM6.10 as retail. I'll use that PR to write the overarching LinAlg feature release notes
| ; RUN: %dxc -dumpbin %t.dxil | FileCheck %s -check-prefix=DXIL | ||
| ; RUN: %dxv %t.dxil -o %t.hash.dxil 2>&1 | FileCheck %s -check-prefix=VAL | ||
| ; RUN: %dxa %t.hash.dxil -dumphash | FileCheck %s -check-prefix=HASH | ||
| ; RUN: not %dxv %t.dxil 2>&1 | FileCheck %s -check-prefix=VAL |
There was a problem hiding this comment.
For now this test has to be weakened a little bit because SM6.11 isn't spellable. Once it's spellable I'll update the test to do the same thing it was doing before but for SM6.11 experimental
There was a problem hiding this comment.
Ah ok, makes sense.

Fixes #8953
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com