@@ -297,6 +297,49 @@ jobs:
297297 - run : cmake --install build --prefix build/install --config ${{matrix.config}}
298298 - run : ctest --parallel --output-on-failure -C ${{matrix.config}} --test-dir build/
299299
300+ windows_arm64x :
301+ # Native Windows on Arm: Tests building a genuine arm64x binary and validates that an x64 test suite passes
302+ # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well
303+ # needs: windows_arm
304+ runs-on : windows-11-arm
305+ timeout-minutes : 30
306+ steps :
307+ - uses : actions/checkout@v6
308+ - uses : actions/setup-python@v5
309+ with :
310+ python-version : ' 3.x'
311+ - run : python scripts/update_deps.py --arch arm64 --api vulkan --dir external --clean-build --clean-install
312+ - run : |
313+ cmake -S. -B build_arm64x `
314+ -A arm64 `
315+ -D BUILD_AS_ARM64X=ARM64 `
316+ -D CMAKE_BUILD_TYPE=Release `
317+ -D BUILD_WERROR=ON `
318+ -C external/helper.cmake
319+ - run : cmake --build build_arm64x/ --config Release
320+ - run : |
321+ cmake -S. -B build_arm64xec `
322+ -A arm64ec `
323+ -D BUILD_AS_ARM64X=ARM64EC `
324+ -D BUILD_TESTS=ON `
325+ -D CMAKE_BUILD_TYPE=Release `
326+ -D BUILD_WERROR=ON `
327+ -C external/helper.cmake
328+ - run : cmake --build build_arm64xec/ --config Release
329+ - run : cmake --install build_arm64xec --prefix build/install --config Release
330+ - run : ctest --parallel --output-on-failure -C Release --test-dir build_arm64xec/
331+ - run : |
332+ cmake -S. -B build_x64 `
333+ -A x64 `
334+ -D BUILD_TESTS=ON `
335+ -D CMAKE_BUILD_TYPE=Release `
336+ -D BUILD_WERROR=ON `
337+ -C external/helper.cmake
338+ - run : cmake --build build_x64/ --config Release
339+ - run : ctest --parallel --output-on-failure -C Release --test-dir build_x64/
340+ env :
341+ VK_LOADER_TEST_LOADER_PATH : ${{ github.workspace }}/build_arm64xec/loader/Release/vulkan-1.dll
342+
300343 # Test both clang and clang-cl (Chromium project uses clang-cl)
301344 windows_clang :
302345 # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well
0 commit comments