Skip to content

Commit e86d0aa

Browse files
committed
fix broken vulkan ci
1 parent 5c441c3 commit e86d0aa

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

.github/workflows/native-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
run: |
199199
sudo apt-get update
200200
sudo apt-get install -y cmake ninja-build zlib1g-dev \
201-
libvulkan-dev glslc patchelf ccache
201+
libvulkan-dev glslc spirv-headers patchelf ccache
202202
- name: CPU ISA signature (segregates ccache across the heterogeneous fleet)
203203
# ggml builds with -march=native here (the dev posture under test);
204204
# ccache hashes the literal flag, not the ISA it resolves to, so a

scripts/ci/manylinux-vulkan-toolchain.sh

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
# Build the Vulkan toolchain (headers + loader + glslc) from pinned Khronos
2+
# Build the Vulkan toolchain (headers + SPIRV-Headers + loader + glslc) from pinned Khronos
33
# tags inside the manylinux_2_28 container, for the Linux cpu+vulkan provider
44
# wheel (cibuildwheel before-all hook; see [tool.cibuildwheel.linux] in the
55
# repo-root pyproject.toml).
@@ -18,7 +18,7 @@
1818

1919
set -euo pipefail
2020

21-
VULKAN_SDK_TAG="vulkan-sdk-1.4.350.0" # Vulkan-Headers + Vulkan-Loader
21+
VULKAN_SDK_TAG="vulkan-sdk-1.4.350.0" # Vulkan-Headers + SPIRV-Headers + Vulkan-Loader
2222
SHADERC_TAG="v2026.2" # google/shaderc (glslc)
2323

2424
PREFIX=/usr/local
@@ -53,6 +53,16 @@ cmake -S "$WORK/headers" -B "$WORK/headers/build" -G Ninja \
5353
-DCMAKE_INSTALL_PREFIX="$STAGE" >/dev/null
5454
cmake --install "$WORK/headers/build" >/dev/null
5555

56+
# 1b. SPIRV-Headers: header-only, seconds. ggml-vulkan's CMakeLists now does
57+
# find_package(SPIRV-Headers CONFIG REQUIRED) (added in the ggml v0.15.2
58+
# sync), so the SPIRV-HeadersConfig.cmake must be on CMAKE_PREFIX_PATH.
59+
# Same Khronos vulkan-sdk-* tag as the Vulkan headers.
60+
git clone --quiet --depth 1 --branch "$VULKAN_SDK_TAG" \
61+
https://github.com/KhronosGroup/SPIRV-Headers "$WORK/spirv-headers"
62+
cmake -S "$WORK/spirv-headers" -B "$WORK/spirv-headers/build" -G Ninja \
63+
-DCMAKE_INSTALL_PREFIX="$STAGE" >/dev/null
64+
cmake --install "$WORK/spirv-headers/build" >/dev/null
65+
5666
# 2. Vulkan-Loader: link-time libvulkan.so for the ggml-vulkan module. WSI
5767
# support off — compute-only linking, no X11/Wayland build deps. At
5868
# runtime the wheel resolves the *system* loader (auditwheel --exclude

0 commit comments

Comments
 (0)