Skip to content

[SM6.10] Promote experimental DXIL ops to retail - #8956

Merged
Ashley Coleman (V-FEXrt) merged 1 commit into
mainfrom
sm610-promote-dxil-ops
Sep 23, 2026
Merged

Ashley Coleman (V-FEXrt) merged 1 commit into
mainfrom
sm610-promote-dxil-ops

Conversation

@V-FEXrt

Copy link
Copy Markdown
Collaborator

Fixes #8953

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

Fixes #8953

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

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.

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 Low severity

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.

Comment thread utils/hct/hctdb.py
Comment on lines +6626 to +6627
# End of DXIL 1.10 opcodes.
op_count = set_op_count_for_version(1, 10)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

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

Comment thread tools/clang/test/DXC/experimental-dxil-6-10-op.ll
; 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

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah ok, makes sense.

@V-FEXrt
Ashley Coleman (V-FEXrt) merged commit 1305aa3 into main Sep 23, 2026
14 checks passed
@V-FEXrt
Ashley Coleman (V-FEXrt) deleted the sm610-promote-dxil-ops branch September 23, 2026 22:17
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.

[SM 6.10] Promote SM6.10 DXIL Ops out of experimental

4 participants