Updated port qvac-lib-inference-addon-cpp to v0.6.0#11
Merged
Conversation
olyasir
approved these changes
Jul 2, 2025
moromisato
approved these changes
Jul 2, 2025
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 20, 2026
…18993) Re-pins the ggml-speech port from tetherto/qvac-ext-ggml @ 9562ed04 (2026-05-18, port-version 2 just landed in tetherto#156) to Zbig9000/qvac-ext-ggml @ 45dbdecd (2026-05-19, HEAD of QVAC-18992 PR tetherto#13). The new REF is a superset of 9562ed04: - 9562ed04 (GustavoA1604, PR tetherto#11) ggml-backend: android per-arch CPU variant dlopen fallback --- already on tetherto/speech - 19eac6f0 (ggml-org) sync up to ggml-org v0.10.2 (137 commits, bundled-ggml pin matching whisper.cpp v1.8.4.3's sync-ggml.last) - 4 conflict-resolution union merges in src/ggml-metal/ (additive, speech-stack patches + upstream's new GGML_OP_ROLL) --- details in tetherto/qvac-ext-ggml PR tetherto#13 TEMPORARY: REPO stays pinned at Zbig9000 fork until PR tetherto#13 lands on tetherto/speech. After that, flip REPO -> tetherto/qvac-ext-ggml + recompute SHA512 (no other port changes needed). Switches Android build to full dynamic backends (QVAC-18993): - GGML_CPU_STATIC=ON --> GGML_CPU_ALL_VARIANTS=ON - All backends (per-arch CPU + Vulkan + OpenCL) ship as MODULE .so loaded at runtime via ggml's GGML_BACKEND_DL loader. - Picks up the .so files into vcpkg's bin/ via post-install file(GLOB). Adds an `-isystem` shim that injects spirv-headers on the include path when the vulkan feature is on: the QVAC-18992 ggml-org v0.10.2 merge introduces ggml-vulkan.cpp code that uses spv::* enums unconditionally for SPIR-V capability injection (rounding-mode RTE). Vulkan-Headers itself no longer bundles spirv.hpp, so the standalone SPIRV-Headers tree must be on the include path. ggml-vulkan's CMakeLists doesn't find_package(SpirvHeaders) so we inject via CMAKE_CXX_FLAGS. version-date 2026-04-09 --> 2026-05-19 port-version 2 --> 3 (continues after tetherto#156's bump to 2026-04-09#2) Co-authored-by: Cursor <cursoragent@cursor.com>
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 27, 2026
Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR tetherto#13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request tetherto#13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR tetherto#13 also brings in PR tetherto#11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com>
4 tasks
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 27, 2026
Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR tetherto#13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request tetherto#13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR tetherto#13 also brings in PR tetherto#11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com>
jpgaribotti
pushed a commit
that referenced
this pull request
May 27, 2026
…pp re-validation (QVAC-19236, QVAC-18992, QVAC-19071) (#169) * whisper-cpp 1.8.5: migrate to ggml-speech + expose metal feature Two ticket deliverables combined into one consistent port rewrite: QVAC-18992 — Migrate to use ggml speech branch ---------------------------------------------- whisper-cpp now consumes the system-installed ggml provided by the `ggml-speech` port (same shape as parakeet-cpp and tts-cpp), instead of building the bundled `qvac-ext-lib-whisper.cpp/ggml/` subdirectory. Driven by -DWHISPER_USE_SYSTEM_GGML=ON; whisper.cpp's top-level CMake then calls `find_package(ggml CONFIG REQUIRED)` and aliases the `ggml::ggml` target to its internal `ggml` target. The bundled ggml source tree still exists in the upstream tarball but is no longer walked at configure time. All backend wiring is delegated to ggml-speech: - GGML_METAL / GGML_VULKAN / GGML_OPENCL / GGML_CUDA - GGML_BACKEND_DL=ON on Android (dynamic-backend mode) - GGML_CPU_ALL_VARIANTS=ON / GGML_CPU_REPACK=ON on Android (per-arch CPU MODULE .so files) - GGML_VULKAN_DISABLE_COOPMAT[2]=ON on Android (Adreno NDK) - spirv-headers `-isystem` shim for Vulkan - Android NDK Vulkan-Headers download - libqvac-speech-ggml-* output filename prefix Side effects: - The Vulkan-Headers download block is gone from this portfile; ggml-speech handles it. android-vulkan-version.cmake deleted. - The MSVC `/I` vs GCC/Clang `-isystem` spirv-headers shim is gone from this portfile; ggml-speech handles it. - The DL_BACKENDS install-tree fiddling is gone; the libqvac-speech-ggml-*.so files are installed by ggml-speech into ${VCPKG_INSTALLED_DIR}/<triplet>/lib/, which the transcription-whispercpp addon already picks up via get_target_property(... LOCATION) on the ggml::<backend> imported targets. - whisper-cpp + parakeet-cpp + tts-cpp now share the same backend binary set on every triplet (was: whisper-cpp brought a separate libqvac-ggml-* set, parakeet/tts brought libqvac-speech-ggml-*). Single source of truth. QVAC-19236 — Expose backend selection as features ------------------------------------------------- Add the `metal` feature (was unconditionally ON for macOS / OFF for iOS in the portfile) so all 3 GPU backends are now declarative: whisper-cpp[metal] -> ggml-speech[metal] (osx | ios) whisper-cpp[vulkan] -> ggml-speech[vulkan] (linux | windows | android) whisper-cpp[opencl] -> ggml-speech[opencl] (android) Each whisper-cpp feature simply propagates into the matching ggml-speech feature (with the platform guard kept). Consumers can express the full GPU matrix declaratively in their own vcpkg.json (the transcription-whispercpp addon does exactly this in a companion PR — selecting [metal] for osx only, since iOS Metal still has a separate XPC/MTLCompiler runtime crash being investigated; the iOS binary stays on the CPU backend by simply not selecting [metal]). Whisper-cpp REF --------------- Bumped to v1.8.5 = 738d2e9e (tetherto/qvac-ext-lib-whisper.cpp@master), which is the merge of #33 ("update to v1.8.5 and sync vendored whisper.cpp + ggml to ggml-org upstream"). Pure upstream sync — no tetherto-specific behavior change at the consumer level beyond the ggml-source switch above. Result ------ portfile.cmake: 150 -> ~55 lines (much closer to parakeet-cpp / tts-cpp shape). Total diff: -174 / +56. Version bump: 1.8.4.3#1 -> 1.8.5#0 (treating the version-string change + the ggml-source switch as a fresh baseline rather than a port-revision bump). Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Cursor <cursoragent@cursor.com> * ggml-speech: bump to 2026-05-27#0 (PR #13 merged on speech) Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR #13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request #13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR #13 also brings in PR #11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com> * tts-cpp + parakeet-cpp: bump port-version against ggml-speech 2026-05-27 ggml-speech bumped to 2026-05-27#0 in this PR will auto-apply via baseline to every consumer port that has version>= on it. tts-cpp and parakeet-cpp must declare they have been validated against the new ggml-speech to keep the registry self-consistent. tts-cpp: 2026-05-20 -> 2026-05-20#1 - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#4) parakeet-cpp: 2026-05-20#2 -> 2026-05-20#3 - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#3) Local validation (x64-linux, vulkan feature) against this registry tree: - tts-ggml addon: vcpkg resolves clean, build links clean, 35 C++ unit tests pass, 61 JS unit tests pass - transcription-parakeet addon: vcpkg resolves clean, build links clean, 32 C++ unit tests pass, 17 JS unit tests pass Co-authored-by: Cursor <cursoragent@cursor.com> * whisper-cpp: bump version>=ggml-speech to 2026-05-27 The version>= constraint on ggml-speech was still 2026-04-09#4 (carried over from before the system-ggml migration). whisper-cpp@1.8.5 only works against the new ggml-speech@2026-05-27 (v0.10.2 vendored sources, new symbol set, spirv-headers Vulkan wiring), so the constraint must reflect that minimum. In practice the resolver always picked 2026-05-27 because that is the baseline value, so this is metadata-only and not a behavior change for either the addon CI run or the local file:// validation. It is the correct declaration so a future consumer with a stale baseline cannot combine whisper-cpp@1.8.5 with the old ggml-speech. Co-authored-by: Cursor <cursoragent@cursor.com> * ggml-speech: pin spirv-headers vulkan dep to version>=1.4.341.0 Without a version>= constraint, the resolved spirv-headers version depends entirely on the consumer's microsoft/vcpkg baseline. Pin to 1.4.341.0 to match the convention already used by qvac-fabric (the other speech-stack port that depends on spirv-headers via vulkan), keep both ports resolvable from the same SPIRV-Headers version when they coexist in a consumer manifest, and ensure consumers with an older baseline still pick up a known-good SPIRV-Headers. Local validation on x64-linux: vcpkg upgrades spirv-headers from the addon's baseline 1.4.304.1 to the required 1.4.341.0 cleanly, the ggml-vulkan patch builds against the new headers, the full transcription-whispercpp addon builds + 107/107 cpp tests + 30/30 unit tests pass. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.