From baa9c0883f4f7588ad5fdbf01e2eb8b2db4aca2a Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sat, 29 Nov 2025 23:06:38 -0600 Subject: [PATCH 01/12] Update runners --- .github/workflows/build-artifacts.yml | 12 ++++++------ .github/workflows/test.yml | 4 ++-- README.md | 7 +------ action.yml | 14 +++++++------- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index a877970..c993fd4 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -7,13 +7,13 @@ jobs: build-swiftshader: strategy: matrix: - os: [windows-2022, ubuntu-20.04, macOS-13] + os: [windows-2025, ubuntu-24.04, macOS-15] include: - - os: windows-2022 + - os: windows-2025 swiftshaderLibName: vk_swiftshader.dll - - os: ubuntu-20.04 + - os: ubuntu-24.04 swiftshaderLibName: libvk_swiftshader.so - - os: macOS-13 + - os: macOS-15 swiftshaderLibName: libvk_swiftshader.dylib name: 'swiftshader-${{ matrix.os }}' @@ -55,8 +55,8 @@ jobs: build-sdk: strategy: matrix: - os: [windows-2022, ubuntu-20.04, macOS-13] - sdkTag: ['vulkan-sdk-1.4.321.0', 'vulkan-sdk-1.4.309.0', 'vulkan-sdk-1.3.283.0', 'vulkan-sdk-1.3.280.0', 'vulkan-sdk-1.3.275.0', 'sdk-1.3.261.1'] + os: [windows-2025, ubuntu-24.04, macOS-15] + sdkTag: ['vulkan-sdk-1.4.328.0', 'vulkan-sdk-1.4.321.0', 'vulkan-sdk-1.4.309.0', 'vulkan-sdk-1.3.283.0', 'vulkan-sdk-1.3.280.0', 'vulkan-sdk-1.3.275.0', 'sdk-1.3.261.1'] name: '${{ matrix.sdkTag }}-${{ matrix.os }}' runs-on: ${{ matrix.os }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c9a19a6..91274e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,8 +9,8 @@ jobs: Build: strategy: matrix: - os: [windows-2019, windows-2022, ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macOS-13, macOS-14, macOS-15] - sdkVersion: [1.4.321.0] + os: [windows-2025, ubuntu-24.04, macOS-15] + sdkVersion: [1.4.328.0] name: test ${{ matrix.os }} | ${{ matrix.sdkVersion }} runs-on: ${{ matrix.os }} diff --git a/README.md b/README.md index 61eb3a3..4c4005b 100644 --- a/README.md +++ b/README.md @@ -44,13 +44,8 @@ In addition to the output variables, the action updates the following contexts t ## Supported Runners The intention is to support all standard GitHub-hosted runners. Tests currently run on: -- `windows-2019` -- `windows-2022` -- `ubuntu20.04` -- `ubuntu22.04` +- `windows-2025` - `ubuntu24.04` -- `macOS-13` -- `macOS-14` - `macOS-15` ## Known Limitations diff --git a/action.yml b/action.yml index b60d7f3..59b223c 100644 --- a/action.yml +++ b/action.yml @@ -7,7 +7,7 @@ inputs: sdkVersion: description: 'Requested VulkanSDK version' required: false - default: 1.4.309.0 + default: 1.4.328.0 installPath: description: 'Directory to install to' required: false @@ -29,16 +29,16 @@ runs: ACTION_TAG: ${{ github.action_ref }} run: | if [[ "${{ runner.os }}" == "Windows" ]]; then - echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-windows-2022-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-windows-2022-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-windows-2025-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-windows-2025-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=vk_swiftshader.dll" >> "$GITHUB_OUTPUT" elif [[ "${{ runner.os }}" == "Linux" ]]; then - echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-ubuntu-20.04-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-ubuntu-20.04-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-ubuntu-24.04-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-ubuntu-24.04-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.so" >> "$GITHUB_OUTPUT" elif [[ "${{ runner.os }}" == "macOS" ]]; then - echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macOS-13-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-macOS-13-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macOS-15-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-macOS-15-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.dylib" >> "$GITHUB_OUTPUT" else echo "Unsupported OS: ${{ runner.os }}" From cbcb63f3a86e28de296cdac21b1d575035ede26b Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 11:02:45 -0600 Subject: [PATCH 02/12] Updated readme --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4c4005b..e55edf9 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ This action performs minimal setup to enable building and running Vulkan applica with: # VulkanSDK version to use # Must be a supported version - # The default value is 1.4.309.0 - sdkVersion: 1.4.309.0 + # The default value is 1.4.328.0 + sdkVersion: 1.4.328.0 # Optional path to installation path # The default value is '${{ github.workspace }}` @@ -36,11 +36,12 @@ In addition to the output variables, the action updates the following contexts t - `$VULKAN_SDK/bin` (Windows only) ## Supported VulkanSDK Versions +- 1.4.328.0 +- 1.4.321.0 - 1.4.309.0 - 1.3.283.0 - 1.3.280.0 - 1.3.275.0 -- 1.3.261.1 ## Supported Runners The intention is to support all standard GitHub-hosted runners. Tests currently run on: From 310396427e379c3057591bcfc638e6695912ccd1 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 11:03:11 -0600 Subject: [PATCH 03/12] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e55edf9..1f67eb2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ In addition to the output variables, the action updates the following contexts t - 1.3.275.0 ## Supported Runners -The intention is to support all standard GitHub-hosted runners. Tests currently run on: +Tests currently run on: - `windows-2025` - `ubuntu24.04` - `macOS-15` From 46689420b56d2f800231e85a791554a08e74a399 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 11:19:21 -0600 Subject: [PATCH 04/12] test updates --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index 59b223c..ab7e23a 100644 --- a/action.yml +++ b/action.yml @@ -38,7 +38,7 @@ runs: echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.so" >> "$GITHUB_OUTPUT" elif [[ "${{ runner.os }}" == "macOS" ]]; then echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macOS-15-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-macOS-15-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-macos-15-x86_64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.dylib" >> "$GITHUB_OUTPUT" else echo "Unsupported OS: ${{ runner.os }}" From a834ef4fd0e4de3bb8ed21ba7425597d5ab91dd8 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 11:28:00 -0600 Subject: [PATCH 05/12] x86_64 macos --- .github/workflows/build-artifacts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index c993fd4..2efff81 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -7,7 +7,7 @@ jobs: build-swiftshader: strategy: matrix: - os: [windows-2025, ubuntu-24.04, macOS-15] + os: [windows-2025, ubuntu-24.04, macOS-15-intel] include: - os: windows-2025 swiftshaderLibName: vk_swiftshader.dll From d7fb5d2a3383060658e246438ad48c80753c9e05 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 13:12:18 -0600 Subject: [PATCH 06/12] ARM support --- .claude/settings.local.json | 9 +++++ .github/workflows/build-artifacts.yml | 53 +++++++++++++++++++++++---- .github/workflows/test.yml | 2 +- README.md | 19 ++++++++-- action.yml | 14 +++++-- 5 files changed, 81 insertions(+), 16 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..8f5a86d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,9 @@ +{ + "permissions": { + "allow": [ + "Bash(git ls-remote:*)" + ], + "deny": [], + "ask": [] + } +} diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index 2efff81..c6ac17b 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -7,7 +7,7 @@ jobs: build-swiftshader: strategy: matrix: - os: [windows-2025, ubuntu-24.04, macOS-15-intel] + os: [windows-2025, ubuntu-24.04, macOS-15, macOS-15-intel] include: - os: windows-2025 swiftshaderLibName: vk_swiftshader.dll @@ -15,6 +15,8 @@ jobs: swiftshaderLibName: libvk_swiftshader.so - os: macOS-15 swiftshaderLibName: libvk_swiftshader.dylib + - os: macOS-15-intel + swiftshaderLibName: libvk_swiftshader.dylib name: 'swiftshader-${{ matrix.os }}' runs-on: ${{ matrix.os }} @@ -31,7 +33,11 @@ jobs: - name: Build Swiftshader shell: bash run: | - cmake -S Swiftshader -B Swiftshader/build_out -DCMAKE_BUILD_TYPE=Release + if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + cmake -S Swiftshader -B Swiftshader/build_out -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + else + cmake -S Swiftshader -B Swiftshader/build_out -DCMAKE_BUILD_TYPE=Release + fi cmake --build Swiftshader/build_out --target vk_swiftshader --config Release --parallel 4 if [[ "${{ runner.os }}" == "Windows" ]]; then @@ -46,16 +52,30 @@ jobs: cp Swiftshader/build_out/$OUT_DIR/${{ matrix.swiftshaderLibName }} swiftshader_artifacts cp Swiftshader/LICENSE.txt swiftshader_artifacts + - name: Set Artifact Name + id: set-name + shell: bash + run: | + if [[ "${{ matrix.os }}" == "windows-2025" ]]; then + echo "artifact-name=swiftshader-windows-x64" >> "$GITHUB_OUTPUT" + elif [[ "${{ matrix.os }}" == "ubuntu-24.04" ]]; then + echo "artifact-name=swiftshader-ubuntu-24.04-x64" >> "$GITHUB_OUTPUT" + elif [[ "${{ matrix.os }}" == "macOS-15" ]]; then + echo "artifact-name=swiftshader-macos-15-arm64" >> "$GITHUB_OUTPUT" + elif [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + echo "artifact-name=swiftshader-macos-15-x86_64" >> "$GITHUB_OUTPUT" + fi + - name: Upload Artifacts uses: actions/upload-artifact@v4 with: - name: swiftshader-${{ matrix.os }}-x64 + name: ${{ steps.set-name.outputs.artifact-name }} path: swiftshader_artifacts build-sdk: strategy: matrix: - os: [windows-2025, ubuntu-24.04, macOS-15] + os: [windows-2025, ubuntu-24.04, macOS-15, macOS-15-intel] sdkTag: ['vulkan-sdk-1.4.328.0', 'vulkan-sdk-1.4.321.0', 'vulkan-sdk-1.4.309.0', 'vulkan-sdk-1.3.283.0', 'vulkan-sdk-1.3.280.0', 'vulkan-sdk-1.3.275.0', 'sdk-1.3.261.1'] name: '${{ matrix.sdkTag }}-${{ matrix.os }}' @@ -76,7 +96,18 @@ jobs: shell: bash run: | SDK_VERSION=$(echo "${{ matrix.sdkTag }}" | sed -E 's/[^0-9]*([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*/\1/') - echo "ARTIFACT_NAME=vulkanSDK-$SDK_VERSION-${{ matrix.os }}-x64" >> $GITHUB_ENV + + if [[ "${{ matrix.os }}" == "windows-2025" ]]; then + ARTIFACT_NAME="vulkanSDK-$SDK_VERSION-windows-x64" + elif [[ "${{ matrix.os }}" == "ubuntu-24.04" ]]; then + ARTIFACT_NAME="vulkanSDK-$SDK_VERSION-ubuntu-24.04-x64" + elif [[ "${{ matrix.os }}" == "macOS-15" ]]; then + ARTIFACT_NAME="vulkanSDK-$SDK_VERSION-macos-15-arm64" + elif [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + ARTIFACT_NAME="vulkanSDK-$SDK_VERSION-macos-15-x86_64" + fi + + echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV ROOT_PATH='${{ github.workspace }}' echo "SDK_PATH=${ROOT_PATH//\\//}/VulkanSDK/$SDK_VERSION" >> $GITHUB_ENV @@ -104,7 +135,11 @@ jobs: - name: Build Vulkan-Loader shell: bash run: | - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release + if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + else + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release + fi cmake --build Vulkan-Loader/build --config Release --parallel 4 cmake --install Vulkan-Loader/build --prefix ${{ env.SDK_PATH }} @@ -118,7 +153,11 @@ jobs: - name: Build Vulkan-ValidationLayers shell: bash run: | - cmake -S Vulkan-ValidationLayers -B Vulkan-ValidationLayers/build -DUPDATE_DEPS=ON -DCMAKE_BUILD_TYPE=Release + if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + cmake -S Vulkan-ValidationLayers -B Vulkan-ValidationLayers/build -DUPDATE_DEPS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + else + cmake -S Vulkan-ValidationLayers -B Vulkan-ValidationLayers/build -DUPDATE_DEPS=ON -DCMAKE_BUILD_TYPE=Release + fi cmake --build Vulkan-ValidationLayers/build --config Release --parallel 4 cmake --install Vulkan-ValidationLayers/build --prefix ${{ env.SDK_PATH }} cp Vulkan-ValidationLayers/LICENSE.txt ${{ env.SDK_PATH }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 91274e9..454f7e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: Build: strategy: matrix: - os: [windows-2025, ubuntu-24.04, macOS-15] + os: [windows-2025, ubuntu-24.04, macOS-15, macOS-15-intel] sdkVersion: [1.4.328.0] name: test ${{ matrix.os }} | ${{ matrix.sdkVersion }} diff --git a/README.md b/README.md index 1f67eb2..9dc9149 100644 --- a/README.md +++ b/README.md @@ -45,13 +45,24 @@ In addition to the output variables, the action updates the following contexts t ## Supported Runners Tests currently run on: -- `windows-2025` -- `ubuntu24.04` -- `macOS-15` +- `windows-2025` (x64) +- `ubuntu-24.04` (x64) +- `macOS-15` (ARM64) +- `macOS-15-intel` (x86_64) + +macOS binaries are available for both ARM64 (Apple Silicon) and x86_64 (Intel). The action automatically detects the runner architecture and downloads the appropriate artifacts. + + | Runner | Architecture | SDK Artifact | SwiftShader Artifact | + |----------------|--------------|------------------------------------------|----------------------------------| + | windows-2025 | x64 | vulkanSDK-{version}-windows-x64.zip | swiftshader-windows-x64.zip | + | ubuntu-24.04 | x64 | vulkanSDK-{version}-ubuntu-24.04-x64.zip | swiftshader-ubuntu-24.04-x64.zip | + | macOS-15 | ARM64 | vulkanSDK-{version}-macos-15-arm64.zip | swiftshader-macos-15-arm64.zip | + | macOS-15-intel | x86_64 | vulkanSDK-{version}-macos-15-x86_64.zip | swiftshader-macos-15-x86_64.zip | ## Known Limitations Due to significant build times, pre-built artifacts are downloaded from the corresponding release of this action. This requires the action version to be specified as a tag - targeting a SHA will not work. The Vulkan loader is built with `LOADER_USE_UNSAFE_FILE_SEARCH=ON` to more reliably allow file discovery through environment variables. To state the obvious, the artifacts provided here are not intended for use outside of testing environments. -Currently, all macOS binaries are built for x86_64. + + diff --git a/action.yml b/action.yml index ab7e23a..bea4d34 100644 --- a/action.yml +++ b/action.yml @@ -29,16 +29,22 @@ runs: ACTION_TAG: ${{ github.action_ref }} run: | if [[ "${{ runner.os }}" == "Windows" ]]; then - echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-windows-2025-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-windows-2025-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-windows-x64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-windows-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=vk_swiftshader.dll" >> "$GITHUB_OUTPUT" elif [[ "${{ runner.os }}" == "Linux" ]]; then echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-ubuntu-24.04-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-artifact-name=swiftshader-ubuntu-24.04-x64.zip" >> "$GITHUB_OUTPUT" echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.so" >> "$GITHUB_OUTPUT" elif [[ "${{ runner.os }}" == "macOS" ]]; then - echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macOS-15-x64.zip" >> "$GITHUB_OUTPUT" - echo "vk-ci-swiftshader-artifact-name=swiftshader-macos-15-x86_64.zip" >> "$GITHUB_OUTPUT" + ARCH=$(uname -m) + if [[ "$ARCH" == "x86_64" ]]; then + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macos-15-x86_64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-macos-15-x86_64.zip" >> "$GITHUB_OUTPUT" + else + echo "vk-ci-sdk-artifact-name=vulkanSDK-${{ inputs.sdkVersion }}-macos-15-arm64.zip" >> "$GITHUB_OUTPUT" + echo "vk-ci-swiftshader-artifact-name=swiftshader-macos-15-arm64.zip" >> "$GITHUB_OUTPUT" + fi echo "vk-ci-swiftshader-lib-name=libvk_swiftshader.dylib" >> "$GITHUB_OUTPUT" else echo "Unsupported OS: ${{ runner.os }}" From 14f79831403b78bde02c195888542ea85358b061 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 20:03:55 -0600 Subject: [PATCH 07/12] Updated test arch --- .github/workflows/test.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 454f7e3..d1157c9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,6 +69,12 @@ jobs: - name: Run Test shell: bash run: | - cmake -S test -B build -DVKCI_API_VERSION="${{ matrix.sdkVersion }}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="${{ github.workspace }}" + if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then + cmake -S test -B build -DVKCI_API_VERSION="${{ matrix.sdkVersion }}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="${{ github.workspace }}" -DCMAKE_OSX_ARCHITECTURES=x86_64 + elif [[ "${{ matrix.os }}" == "macOS-15" ]]; then + cmake -S test -B build -DVKCI_API_VERSION="${{ matrix.sdkVersion }}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="${{ github.workspace }}" -DCMAKE_OSX_ARCHITECTURES=arm64 + else + cmake -S test -B build -DVKCI_API_VERSION="${{ matrix.sdkVersion }}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="${{ github.workspace }}" + fi cmake --build build --config Release ./vulkan-ci-test From 316e2473a259d2510b7fc5898ce0056dd1a0d705 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 20:05:58 -0600 Subject: [PATCH 08/12] Updated test arch --- test/CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a8485ec..9bb7af9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,10 +3,6 @@ project(VulkanCI-Test) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -if (APPLE) - set(CMAKE_OSX_ARCHITECTURES "x86_64") -endif() - if (NOT DEFINED VKCI_API_VERSION) message(FATAL_ERROR "Must define VKCI_API_VERSION") endif() From 1fe82a122750223a07b1e2120f0c604fb650e304 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Sun, 30 Nov 2025 20:33:46 -0600 Subject: [PATCH 09/12] Fix for windows build VK Loader version --- .github/workflows/build-artifacts.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index c6ac17b..cf5b435 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -136,9 +136,9 @@ jobs: shell: bash run: | if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 else - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release fi cmake --build Vulkan-Loader/build --config Release --parallel 4 cmake --install Vulkan-Loader/build --prefix ${{ env.SDK_PATH }} From 4febd2e8105b843c827bf249d3e5dd87c66c35a5 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Mon, 1 Dec 2025 07:17:50 -0600 Subject: [PATCH 10/12] Clean out VCPKG --- .github/workflows/build-artifacts.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index cf5b435..1b15ee3 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -134,11 +134,13 @@ jobs: - name: Build Vulkan-Loader shell: bash + env: + VCPKG_ROOT: "" run: | if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 else - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release fi cmake --build Vulkan-Loader/build --config Release --parallel 4 cmake --install Vulkan-Loader/build --prefix ${{ env.SDK_PATH }} From a601876501cd3a08b41a4b2f3983eab50e7777d3 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Mon, 1 Dec 2025 09:50:00 -0600 Subject: [PATCH 11/12] Use CMAKE_TOOLCHAIN_FILE to disable vcpkg integration Replace VCPKG_ROOT env variable approach with CMAKE_TOOLCHAIN_FILE="" to more reliably disable vcpkg's CMake toolchain integration on Windows. This should prevent vcpkg's cached Vulkan 1.3.301 headers from being used instead of the newly built 1.4.328 headers. --- .github/workflows/build-artifacts.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index 1b15ee3..434bb15 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -134,13 +134,11 @@ jobs: - name: Build Vulkan-Loader shell: bash - env: - VCPKG_ROOT: "" run: | if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_TOOLCHAIN_FILE="" -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 else - cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release + cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_TOOLCHAIN_FILE="" -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release fi cmake --build Vulkan-Loader/build --config Release --parallel 4 cmake --install Vulkan-Loader/build --prefix ${{ env.SDK_PATH }} From 6239b7721e74c757dd48fb4caf9771d9d66d9325 Mon Sep 17 00:00:00 2001 From: Jaremie Romer Date: Tue, 2 Dec 2025 19:45:26 -0600 Subject: [PATCH 12/12] Try to set the VULKAN_SDK var at build time --- .github/workflows/build-artifacts.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index 434bb15..8e494af 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -110,7 +110,9 @@ jobs: echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV ROOT_PATH='${{ github.workspace }}' - echo "SDK_PATH=${ROOT_PATH//\\//}/VulkanSDK/$SDK_VERSION" >> $GITHUB_ENV + SDK_PATH_VALUE="${ROOT_PATH//\\//}/VulkanSDK/$SDK_VERSION" + echo "SDK_PATH=$SDK_PATH_VALUE" >> $GITHUB_ENV + echo "VULKAN_SDK=$SDK_PATH_VALUE" >> $GITHUB_ENV - name: Checkout Vulkan-Headers uses: actions/checkout@v4 @@ -134,6 +136,9 @@ jobs: - name: Build Vulkan-Loader shell: bash + env: + # Disable vcpkg integration to prevent it from providing headers + VCPKG_INSTALLATION_ROOT: "" run: | if [[ "${{ matrix.os }}" == "macOS-15-intel" ]]; then cmake -S Vulkan-Loader -B Vulkan-Loader/build -DCMAKE_TOOLCHAIN_FILE="" -DCMAKE_PREFIX_PATH=${{ env.SDK_PATH }} -DVulkanHeaders_DIR=${{ env.SDK_PATH }}/share/cmake/VulkanHeaders -DVULKAN_HEADERS_INSTALL_DIR=${{ env.SDK_PATH }} -DLOADER_USE_UNSAFE_FILE_SEARCH=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64