[HLSL] Finalize LinAlg HLK test identity#8677
Draft
JoeCitizen wants to merge 24 commits into
Draft
Conversation
Use the shared MatrixUse parameter for the OuterProduct result and set it to Accumulator, matching proposal 0035 and the public dx::linalg API. Add a host-side invariant to prevent the legacy A-use declaration from returning. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Create SRV buffers without UAV flags and transition them for both pixel and non-pixel shader access. Use a direct resource-initialization list so the graphics-only pixel state is legal. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add typed F16, F32, I32, and U32 matrix data with safe byte encoding, rectangular row/column-major storage mapping, and explicit exact, permitted-result, or excluded comparison policy. Cover offsets and padded strides with independent host goldens, and migrate the existing CopyConvert tests onto the oracle. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Handle packed row or column byte-count overflow before using the result, and include raw F32 bits in exact mismatch diagnostics. Cover adjacent float bit patterns in the host oracle test. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add ABI-checked wrappers for the six D3D12 Linear Algebra capability query categories and explicit applicability classification. Gate the rectangular F32 CopyConvert case using concrete supported wave sizes. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Compile capability-gated CopyConvert coverage at the exact wave size whose MatrixConstruction support was queried. Keep mandatory baseline cases on the existing ranged WaveSize attribute. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 01:03
e73f01d to
3d96add
Compare
added 2 commits
July 25, 2026 14:10
Validate multiplication support flags per operation, exhaustively check the preview D3D12 ABI mirrors, and preserve query-backed optional skips in HLK mode. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add rectangular Length/GetCoordinate/GetElement coverage and the specified Get/Set out-of-bounds behaviour. Capture thread-local matrix records without UAV races and gate optional F32 cases at the exact queried wave size. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 02:28
3d96add to
a8119f1
Compare
Seed OOB Get outputs with non-zero sentinels and require every lane in the selected wave to execute and write the specified zero result. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add bounded raw descriptor-table bindings and independent whole-buffer oracles for LinAlg descriptor operations. Cover non-zero offsets, padded strides, row/column-major transfer, descriptor bounds, and capability-gated atomic accumulation. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 02:55
a8119f1 to
175ffb2
Compare
added 2 commits
July 25, 2026 15:21
Reject invalid raw-buffer views, conflicting shader-visible resource heaps, and ambiguous root-parameter bindings before ShaderOp execution. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add race-free Wave and ThreadGroup group-shared transfer coverage for row/column-major layouts, non-zero offsets, padded strides, and exact whole-buffer guards. Add capability-gated Wave atomic accumulation with coordinate-derived values, while keeping cross-component conversion out of scope pending runtime conformance. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 03:23
175ffb2 to
8788a0c
Compare
Extend each group-shared backing array by four typed sentinel elements so transfer and accumulation tests verify writes do not overrun the matrix extent. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add mixed F16/F32 CopyConvert cases and verify that conversion leaves the source matrix unchanged. Cover exact integer widening, RTNE plus saturating float narrowing, and capability-gated FP8 encoding and round-trip semantics with independent host oracles. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 03:51
8788a0c to
2fbd053
Compare
added 2 commits
July 25, 2026 18:37
Feed host-derived packed FP8 bytes through an SRV for decode so the F16 result cannot false-pass through a folded shader encode/decode chain. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Refactor MatVec execution tests around independent matrix, vector, bias, and output resources with host-derived exact expectations. Add required interpreted input tuples, non-uniform layout coverage, unsigned output, and independent bias validation behind the runtime ThreadVectorMatrixMultiply capability query. The mandatory native F32-to-SInt8 case remains active and exposes the current preview WARP conversion defect. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 06:40
2fbd053 to
a2c7d33
Compare
added 2 commits
July 25, 2026 19:50
Separate native F32 inputs from hand-derived SInt8 values so MatVec exercises RTNE saturation, and use high-bit UInt8 lanes to distinguish unsigned packed interpretation. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add capability-gated Wave matrix multiply, multiply-accumulate, and B-use accumulate cases with independent exact host oracles. Make the accumulator-layout query select an observable A-use or B-use execution path. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 07:52
a2c7d33 to
b0ec1f5
Compare
added 2 commits
July 25, 2026 20:17
Require multiply-only case data to leave the accumulator vector empty so malformed inputs cannot pass validation and then be silently ignored. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add capability-gated ThreadGroup matrix multiply and multiply-accumulate cases with typed group-shared staging and exact host-derived results. Select and compile at the concrete wave and thread-group sizes advertised for each type and shape. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 08:18
b0ec1f5 to
e9844f6
Compare
added 4 commits
July 25, 2026 22:43
Prefer the smallest advertised multi-wave thread-group size when available so ThreadGroup operations cannot pass by behaving only at Wave scope. Add typed trailing guards to the group-shared result store and verify the complete guarded readback. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add non-uniform Thread OuterProduct coverage with exact host readback through the preview matrix-conversion ABI. Add length-eight F16/F32 VectorAccumulate cases with non-zero destinations, capability-gate both operation families, and remove the released-SDK OuterProduct skip through SDK-neutral ABI mirrors. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Add deterministic descriptor-matrix, group-shared-matrix, and descriptor-vector contention across multiple Waves, threads, and dispatch groups. Preserve destination guards, derive repeated totals with checked host arithmetic, execute exact F16/F32 controls on WARP, and retain capability-gated I32 cases for implementations that advertise integer atomic support. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
Replace the placeholder LinAlg class GUID with a stable TAEF identity and clarify the public Kits description while retaining the SM6.10 core requirement and priority metadata. Treat capability variants that a successful authoritative query reports unsupported as skipped in both ordinary and HLK builds; query failures and unsupported mandatory capabilities remain failures. Assisted-by: GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83725f5d-8e98-4c1d-91ee-ad47629e007b
JoeCitizen
force-pushed
the
linalg-hlk-identity-metadata
branch
from
July 25, 2026 10:46
e9844f6 to
36fa340
Compare
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.
Summary
Kits.TestIde2f563d7-7fea-42c1-a841-3fb0decb43a7.DxilConf_SM610_LinAlgclass, its public test name, priority 0, andDevice.Graphics.D3D12.DXILCore.ShaderModel610.CoreRequirementmapping.Skippedin both ordinary and_HLK_CONFbuilds. Query failures and unsupported mandatory capabilities still fail.Stack
This draft is stacked on #8676 and therefore includes the earlier LinAlg implementation commits. The new leaf is commit
36fa3400f4.No GitHub issue or project field was changed.
Validation
ExecHLSLTestsbuild completed.git diff --checkand focused code review completed.The runtime validation used the local compatible D3D12Core and disposable WARP decoder corrections already documented by the stack. Those runtime corrections are not included in this PR.
Human review gate
A named human reviewer must confirm the stable GUID, the retained SM6.10 core requirement mapping, and the capability-gated skip policy before this leaves draft.
Related: #7841, #8655
Assisted-by: GitHub Copilot