[llvm] [HLSL] Run HLSL Tests PR validation on Azure-hosted Windows (PR #226312)

Helena Kotas via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 29 13:54:08 PDT 2026


https://github.com/hekota updated https://github.com/llvm/llvm-project/pull/226312

>From 6dce395910bc4ce492f5356e51c3fe0b0512ef12 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Thu, 24 Sep 2026 15:14:17 -0700
Subject: [PATCH 1/8] [HLSL] Run PR tests on Windows

Replace the macOS HLSL runner with an Azure-hosted Windows 2022 runner and exercise the Clang WARP D3D12 target. Restore Windows toolchain setup and publish the resulting test reports.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-matrix.yaml   |  6 +++---
 .github/workflows/hlsl-test-all.yaml | 19 +++++++++++++++----
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml
index c63a32acd2b3e..9abc88ee1b26e 100644
--- a/.github/workflows/hlsl-matrix.yaml
+++ b/.github/workflows/hlsl-matrix.yaml
@@ -21,10 +21,10 @@ jobs:
       fail-fast: false
       matrix:
         runs-on:
-          - hlsl-macos
+          - windows-2022
 
     uses: ./.github/workflows/hlsl-test-all.yaml
     with:
-      SKU: hlsl-macos
-      TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU
+      SKU: ${{ matrix.runs-on }}
+      TestTarget: check-hlsl-clang-warp-d3d12
       LLVM-ref: ${{ github.ref }}
diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 03605497ab660..5e5a705399e29 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -28,6 +28,11 @@ jobs:
   build:
     runs-on: ${{ inputs.SKU }}
     steps:
+      - name: Setup Windows
+        if: runner.os == 'Windows'
+        uses: llvm/actions/setup-windows at 89a8cf80982d830faab019237860b344a6390c30 # main
+        with:
+          arch: amd64
       - name: Checkout DXC
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
@@ -40,7 +45,7 @@ jobs:
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
           persist-credentials: false
-          ref: ${{ inputs.LLVM-branch }}
+          ref: ${{ inputs.LLVM-ref }}
           path: llvm-project
       - name: Checkout OffloadTest
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -56,6 +61,12 @@ jobs:
           repository: llvm/offload-golden-images
           ref: main
           path: golden-images
+      - name: Setup Python
+        uses: actions/setup-python at a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
+        with:
+          python-version: '3.x'
+      - name: Install test dependencies
+        run: python -m pip install -r OffloadTest/test/requirements.txt
       - name: Build DXC
         run: |
             cd DXC
@@ -68,7 +79,7 @@ jobs:
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends llvm-test-depends clang-test-depends
       - name: Run HLSL Tests
         run: |
@@ -79,8 +90,8 @@ jobs:
             ninja check-hlsl-unit
             ninja ${{ inputs.TestTarget }}
       - name: Publish Test Results
-        uses: EnricoMi/publish-unit-test-result-action/macos at d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
-        if: always() && runner.os == 'macOS'
+        uses: EnricoMi/publish-unit-test-result-action/windows at d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
+        if: always() && runner.os == 'Windows'
         continue-on-error: true
         with:
           comment_mode: off

>From e1730bed019fb249f5c2f2f93959c203d17f84f1 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Thu, 24 Sep 2026 21:04:35 -0700
Subject: [PATCH 2/8] [HLSL] Fix Windows test workflow

Use the Windows llvm-dis executable and let checkout select the event revision instead of accepting an untrusted workflow input.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-matrix.yaml   | 1 -
 .github/workflows/hlsl-test-all.yaml | 8 +-------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml
index 9abc88ee1b26e..b3978031afd10 100644
--- a/.github/workflows/hlsl-matrix.yaml
+++ b/.github/workflows/hlsl-matrix.yaml
@@ -27,4 +27,3 @@ jobs:
     with:
       SKU: ${{ matrix.runs-on }}
       TestTarget: check-hlsl-clang-warp-d3d12
-      LLVM-ref: ${{ github.ref }}
diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 5e5a705399e29..0b1cbd2941d31 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -11,11 +11,6 @@ on:
         required: false
         default: 'main'
         type: string
-      LLVM-ref:
-        description: 'LLVM Branch'
-        required: false
-        default: 'main'
-        type: string
       SKU:
         required: true
         type: string
@@ -45,7 +40,6 @@ jobs:
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
           persist-credentials: false
-          ref: ${{ inputs.LLVM-ref }}
           path: llvm-project
       - name: Checkout OffloadTest
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -79,7 +73,7 @@ jobs:
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis.exe -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends llvm-test-depends clang-test-depends
       - name: Run HLSL Tests
         run: |

>From 4328beebcac86166eeafe904fe2f201e9fb95a2b Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Mon, 28 Sep 2026 13:33:55 -0700
Subject: [PATCH 3/8] [HLSL] Limit Windows CI to HLSL targets

Build only DXC's validator and the HLSL test dependencies, then run the HLSL unit and Clang WARP D3D12 suites.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 0b1cbd2941d31..d57cc4f2255fb 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -67,20 +67,18 @@ jobs:
             mkdir build
             cd build
             cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/
-            ninja dxv llvm-dis
+            ninja dxv
       - name: Build LLVM
         run: |
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis.exe -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
-            ninja hlsl-test-depends llvm-test-depends clang-test-depends
+            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            ninja hlsl-test-depends
       - name: Run HLSL Tests
         run: |
             cd llvm-project
             cd build
-            ninja check-llvm
-            ninja check-clang
             ninja check-hlsl-unit
             ninja ${{ inputs.TestTarget }}
       - name: Publish Test Results

>From e5eff72b0a0e25b9c818a2a46b0ff667cf2ba85b Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Mon, 28 Sep 2026 15:52:08 -0700
Subject: [PATCH 4/8] [HLSL] Use packaged DXC validator

Replace the DXC source build with the current stable Microsoft.Direct3D.DXC NuGet package, build LLVM with clang-cl and LLD, and report sccache statistics after compilation.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 31 ++++++++++++++--------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index d57cc4f2255fb..ca4a263e0cb2f 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -22,20 +22,14 @@ on:
 jobs:
   build:
     runs-on: ${{ inputs.SKU }}
+    env:
+      DXC_VERSION: 1.9.2607.13
     steps:
       - name: Setup Windows
         if: runner.os == 'Windows'
         uses: llvm/actions/setup-windows at 89a8cf80982d830faab019237860b344a6390c30 # main
         with:
           arch: amd64
-      - name: Checkout DXC
-        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
-        with:
-          persist-credentials: false
-          repository: Microsoft/DirectXShaderCompiler
-          ref: main
-          path: DXC
-          submodules: true
       - name: Checkout LLVM
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
@@ -61,20 +55,27 @@ jobs:
           python-version: '3.x'
       - name: Install test dependencies
         run: python -m pip install -r OffloadTest/test/requirements.txt
-      - name: Build DXC
+      - name: Download DXC validator
         run: |
-            cd DXC
-            mkdir build
-            cd build
-            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/
-            ninja dxv
+            nuget install Microsoft.Direct3D.DXC -Version $env:DXC_VERSION -OutputDirectory DXC -ExcludeVersion -NonInteractive
+            $dxcDir = "${{ github.workspace }}/DXC/Microsoft.Direct3D.DXC/build/native/bin/x64"
+            foreach ($file in @("dxv.exe", "dxcompiler.dll", "dxil.dll")) {
+              if (-not (Test-Path "$dxcDir/$file")) {
+                throw "$file was not found in Microsoft.Direct3D.DXC $env:DXC_VERSION"
+              }
+            }
+            "DXC_DIR=$dxcDir" >> $env:GITHUB_ENV
       - name: Build LLVM
         run: |
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DLLVM_USE_LINKER=lld -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=$env:DXC_DIR -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends
+      - name: Show sccache statistics
+        if: always()
+        shell: bash
+        run: sccache --show-stats || true
       - name: Run HLSL Tests
         run: |
             cd llvm-project

>From b0ef585c93af8ed68e809889d71cd2a21f0e8b87 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Mon, 28 Sep 2026 18:30:17 -0700
Subject: [PATCH 5/8] [HLSL] Expose packaged DXC validator

Normalize the NuGet validator directory and add it to PATH so clang-dxc can find dxv.exe. Remove the unused sccache configuration and reporting step.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 69deae8d130ee..653074f5c7d16 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -64,18 +64,16 @@ jobs:
                 throw "$file was not found in Microsoft.Direct3D.DXC $env:DXC_VERSION"
               }
             }
+            $dxcDir = $dxcDir.Replace('\', '/')
             "DXC_DIR=$dxcDir" >> $env:GITHUB_ENV
+            $dxcDir >> $env:GITHUB_PATH
       - name: Build LLVM
         run: |
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DLLVM_USE_LINKER=lld -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=$env:DXC_DIR -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DLLVM_USE_LINKER=lld -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -DDXC_DIR=$env:DXC_DIR -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends
-      - name: Show sccache statistics
-        if: always()
-        shell: bash
-        run: sccache --show-stats || true
       - name: Run HLSL Tests
         run: |
             cd llvm-project

>From 4a4f8e52c7414d1c799ac5bfbadbe340d2382ffb Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Mon, 28 Sep 2026 19:12:04 -0700
Subject: [PATCH 6/8] [HLSL] Suppress clang-cl PCH macro warnings

Keep precompiled headers enabled for build performance while hiding expected static-library macro mismatch diagnostics.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 653074f5c7d16..9f3b5c36e8089 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -72,7 +72,7 @@ jobs:
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DLLVM_USE_LINKER=lld -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -DDXC_DIR=$env:DXC_DIR -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_CXX_FLAGS=-Wno-clang-cl-pch -DLLVM_USE_LINKER=lld -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -DDXC_DIR=$env:DXC_DIR -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends
       - name: Run HLSL Tests
         run: |

>From d844aaa41d23c49c978575a8cd13b8b5aee95bf8 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Tue, 29 Sep 2026 09:32:24 -0700
Subject: [PATCH 7/8] [HLSL] Use latest stable DXC validator

Let NuGet resolve the current stable Microsoft.Direct3D.DXC package while retaining a version-independent validator path.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 9f3b5c36e8089..90a3617552252 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -22,8 +22,6 @@ on:
 jobs:
   build:
     runs-on: ${{ inputs.SKU }}
-    env:
-      DXC_VERSION: 1.9.2607.13
     steps:
       - name: Setup Windows
         if: runner.os == 'Windows'
@@ -57,11 +55,11 @@ jobs:
         run: python -m pip install -r OffloadTest/test/requirements.txt
       - name: Download DXC validator
         run: |
-            nuget install Microsoft.Direct3D.DXC -Version $env:DXC_VERSION -OutputDirectory DXC -ExcludeVersion -NonInteractive
+            nuget install Microsoft.Direct3D.DXC -OutputDirectory DXC -ExcludeVersion -NonInteractive
             $dxcDir = "${{ github.workspace }}/DXC/Microsoft.Direct3D.DXC/build/native/bin/x64"
             foreach ($file in @("dxv.exe", "dxcompiler.dll", "dxil.dll")) {
               if (-not (Test-Path "$dxcDir/$file")) {
-                throw "$file was not found in Microsoft.Direct3D.DXC $env:DXC_VERSION"
+                throw "$file was not found in Microsoft.Direct3D.DXC"
               }
             }
             $dxcDir = $dxcDir.Replace('\', '/')

>From 4903cc3f5e2e056dcce0fea5f3899fac3425a78e Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Tue, 29 Sep 2026 13:53:49 -0700
Subject: [PATCH 8/8] [HLSL] Make tested LLVM revision explicit

Checkout the triggering workflow SHA explicitly so pull request validation continues to test the PR merge commit rather than main.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-test-all.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 90a3617552252..5e6d85221d8db 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -32,6 +32,7 @@ jobs:
         uses: actions/checkout at 3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
         with:
           persist-credentials: false
+          ref: ${{ github.sha }}
           path: llvm-project
       - name: Checkout OffloadTest
         uses: actions/checkout at 3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1



More information about the llvm-commits mailing list