Skip to content

[CI] Promote NVIDIA DirectX target out of experimental#1187

Open
alsepkow wants to merge 7 commits into
llvm:mainfrom
alsepkow:promote-dx-targets
Open

[CI] Promote NVIDIA DirectX target out of experimental#1187
alsepkow wants to merge 7 commits into
llvm:mainfrom
alsepkow:promote-dx-targets

Conversation

@alsepkow
Copy link
Copy Markdown
Collaborator

@alsepkow alsepkow commented May 13, 2026

NVIDIA's DirectX configuration has been stable and has a higher pass rate
than the existing Tier 1 Intel target. Promote it to Tier 1 so it runs on
every PR. AMD, Qualcomm, and the Vulkan IHV configurations remain
experimental and continue to require the test-all label.

Recent pass rates:

Target Passed
Intel 395 (81.44%)
Warp 423 (87.22%)
ARM64 Warp 422 (87.01%)
QC 375 (77.32%)
AMD 415 (85.57%)
Nvidia 414 (85.36%)

AMD was originally part of this promotion but is being excluded for now
while we debug some intermittent bugs that were noticed.

Changes

  • docs/CI.md: Promote Windows NVIDIA GPU DirectX from Experimental to
    Tier 1.
  • README.md: Move the NVIDIA DirectX row from Experimental Targets to
    Tier 1 Targets in the status table.
  • .github/workflows/pr-matrix.yaml: Add windows-nvidia to the existing
    Exec-Tests-Windows matrix (excluding the still-experimental Vulkan
    combinations). Exec-Tests-Extra (gated on test-all) continues to
    cover AMD D3D12, AMD/NVIDIA Vulkan, and all QC targets.

Assisted by Claude Opus 4.7

Both AMD and NVIDIA DirectX configurations have been stable and have higher pass rates than the existing Tier 1 Intel target. Promote them to Tier 1 so they run on every PR. Qualcomm and the Vulkan IHV configurations remain experimental and continue to require the 'test-all' label.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@alsepkow alsepkow force-pushed the promote-dx-targets branch from af63cf9 to cab55cf Compare May 13, 2026 23:08
Match the tier change in docs/CI.md and pr-matrix.yaml so the README status table reflects that these targets now run on every PR.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@farzonl
Copy link
Copy Markdown
Member

farzonl commented May 13, 2026

Thank you Alex!

Copy link
Copy Markdown
Contributor

@bob80905 bob80905 left a comment

Choose a reason for hiding this comment

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

LGTM

Comment thread .github/workflows/pr-matrix.yaml Outdated
matrix:
SKU: [windows-intel]
TestTarget: [check-hlsl-d3d12, check-hlsl-vk, check-hlsl-clang-d3d12, check-hlsl-clang-vk]
include:
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.

nit:
You might consider something like this:

matrix:
   SKU: [windows-intel, windows-amd, windows-nvidia]
   TestTarget: [check-hlsl-d3d12, check-hlsl-vk, check-hlsl-clang-d3d12, check-hlsl-clang-vk]
   exclude:
     - { SKU: windows-amd,    TestTarget: check-hlsl-vk }
     - { SKU: windows-amd,    TestTarget: check-hlsl-clang-vk }
     - { SKU: windows-nvidia, TestTarget: check-hlsl-vk }
     - { SKU: windows-nvidia, TestTarget: check-hlsl-clang-vk }

so that as future test targets get promoted, we can just remove exclusions, rather than needing to add specific inclusions. Something about this seems cleaner to me.

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.

This does seem cleaner to me assuming the expected state would eventually be that we don't have exclusions.

Per Bob's review feedback, switch from listing AMD/NVIDIA D3D12 combinations via 'include' to a cross-product with 'exclude' for the AMD/NVIDIA Vulkan combinations. As future targets get promoted out of experimental, we can simply remove exclusions rather than adding inclusions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@bob80905 bob80905 left a comment

Choose a reason for hiding this comment

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

Bob approves 😋

alsepkow and others added 2 commits May 13, 2026 16:50
Apply the same cross-product + exclude pattern to the experimental Exec-Tests-Extra job for consistency. As targets are promoted out of experimental, exclusions can be added here in lockstep with their removal from the Tier 1 Exec-Tests-Windows job.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This reverts commit 1eec3eb.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
AMD's check-hlsl-d3d12 job uncovered AMD UMD crashes (0xC0000005 in

amdxc64.dll) on a small set of CBuffer/matrix tests when running with the

default RelWithDebInfo build used by pr-matrix.yaml. The scheduled

Debug-build job sees fewer of these failures, so the AMD pass is not yet

stable enough for Tier 1.

Move AMD's D3D12 entries back into Exec-Tests-Extra (gated on the

test-all label) and revert the AMD rows in docs/CI.md and README.md.

NVIDIA DirectX remains promoted to Tier 1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread .github/workflows/pr-matrix.yaml Outdated
matrix:
SKU: [windows-nvidia, windows-amd, windows-qc]
TestTarget: [check-hlsl-d3d12, check-hlsl-vk, check-hlsl-clang-d3d12, check-hlsl-clang-vk]
include:
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.

Why has this been expanded out, rather than using the matrix and exclusions approach used above? Presumably it'd be preferable to use the matrix/exclude pattern?

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.

Came up in discussion with @bob80905 that was that the includes option makes for cleaner looking diffs if we're doing partial promotions. And that partial promotions have typically been the case.

If that weren't the case than sticking with excludes makes more sense. I'm indifferent. Do we have a pattern we typically follow?

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.

Previously we seemed to use the matrix and have excludes. The matrix + excludes IMO specifies intent much more clearly. I need to reconstruct the matrix to understand what's going on with the explicit include list.

Copy link
Copy Markdown
Contributor

@damyanp damyanp left a comment

Choose a reason for hiding this comment

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

I don't think that the PR description matches what the PR actually does?

@alsepkow alsepkow changed the title [CI] Promote AMD and NVIDIA DirectX targets out of experimental [CI] Promote NVIDIA DirectX target out of experimental May 18, 2026
Convert Exec-Tests-Extra from an explicit `include:` list to the same

cross-product + `exclude:` shape used by Exec-Tests-Windows. The set of

combinations that run is unchanged (AMD x all 4 TestTargets, NVIDIA x

Vulkan only, QC x all 4 TestTargets); only the YAML shape changes.

Per review feedback, this keeps the two matrices internally consistent

and matches the cross-product shape both jobs used prior to this PR.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@bogner bogner left a comment

Choose a reason for hiding this comment

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

LGTM. For the commit message/PR description I don't think the recent pass rates, the fact that we were considering AMD as well here, or the list of what the mechanical changes are are useful. IMO we just need the blurb at the beginning to justify this change and provide sufficient historical context:

NVIDIA's DirectX configuration has been stable and has a higher pass rate
than the existing Tier 1 Intel target. Promote it to Tier 1 so it runs on
every PR. AMD, Qualcomm, and the Vulkan IHV configurations remain
experimental and continue to require the test-all label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants