Skip to content

QVAC-3127: Updated port qvac-lib-inference-addon-cpp to v0.6.1#13

Merged
hamlingreen merged 1 commit into
tetherto:mainfrom
jpgaribotti:QVAC-3127
Jul 9, 2025
Merged

QVAC-3127: Updated port qvac-lib-inference-addon-cpp to v0.6.1#13
hamlingreen merged 1 commit into
tetherto:mainfrom
jpgaribotti:QVAC-3127

Conversation

@jpgaribotti

Copy link
Copy Markdown
Contributor

No description provided.

@hamlingreen hamlingreen merged commit 98300ba into tetherto:main Jul 9, 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 21, 2026
cl.exe does not understand the GCC/Clang `-isystem` flag --- it treats it
as a positional argument (a source file path), then tries to open the
following include directory path as a source file and dies with:

    c1xx: fatal error C1083: Cannot open source file:
    'C:/.../x64-windows/include': No such file or directory

Surfaced on tetherto/qvac/pull/2124 prebuild / win32-x64 against
whisper-cpp[vulkan].

The include shim now emits `/I<path>` on MSVC (and the legacy `/I` form,
no space, for maximal cl-flavour compatibility) and keeps `-isystem
<path>` on GCC/Clang.

Note: this PR previously also carried the ggml-speech port bump
(b4cf7b2) and the matching ggml-speech-side MSVC shim. Both have been
dropped because the consumer-side migration to ggml-speech
(QVAC-18992) is staying behind PR tetherto#13 / PR tetherto#28 for now; only the
whisper-cpp bits are required to land for the Android dynamic-backend
work on PR #2124.

Co-authored-by: Cursor <cursoragent@cursor.com>
GustavoA1604 pushed a commit that referenced this pull request May 21, 2026
… MSVC fix (QVAC-18300, QVAC-18993) (#152)

* whisper-cpp: bump to 1.8.4.3 with Android OpenCL + dynamic-backend + spirv-headers (QVAC-18300, QVAC-18992, QVAC-18993)

Brings the whisper-cpp port up to the upstream-sync snapshot at
v1.8.4.3 (QVAC-18991, merged into tetherto/qvac-ext-lib-whisper.cpp
master via PR #25) plus the Android speech-stack flags landed for
QVAC-18300 + QVAC-18992 + QVAC-18993:

  - opencl feature (QVAC-18300): Android-only enable-path,
    OpenCL/Vulkan side-by-side, COOPMAT[2] disabled to keep
    Adreno-class GPUs healthy.
  - Android dynamic-backend mode (QVAC-18993):
    GGML_BACKEND_DL=ON, GGML_CPU_ALL_VARIANTS=ON, GGML_CPU_REPACK=ON.
    Static dispatcher + per-microarch CPU .so + GPU .so files side
    by side, picked by ggml's HWCAP-aware loader at runtime.
  - spirv-headers dependency for the vulkan feature (QVAC-18992):
    the upstream ggml-org v0.10.2 sync pulled in ggml-vulkan.cpp code
    that uses spv::* enums unconditionally for SPIR-V capability
    injection (RTE rounding-mode); Vulkan-Headers no longer bundles
    spirv.hpp, so the standalone SPIRV-Headers tree must be on the
    include path. Inject via CMAKE_CXX_FLAGS=-isystem since
    ggml-vulkan's CMakeLists doesn't find_package(SpirvHeaders).

REF currently pins Zbig9000/qvac-ext-lib-whisper.cpp @ 14620c88
which is the tree-equivalent of merged PR #25 (upstream sync) +
merged PR #27 (tts-cpp <atomic>) + still-open PR #28 (bundled-ggml
Android dynamic-backend fixes). After PR #28 lands on tetherto/master
and a v1.8.4.x tag is published, flip REPO -> tetherto and the
tag/SHA (no other port changes needed).

The previous port-version 2's two patch files
(0001-ggml-allow-backend-dl-with-static-core.patch,
0002-ggml-android-cpu-variant-dlopen-fallback.patch) are now
upstream-equivalent commits on whisper.cpp PR #28 --- ports is
patch-free.

SHA512 = 733effd6... matches the github.com/Zbig9000/qvac-ext-lib-whisper.cpp/archive/14620c88....tar.gz tarball verified via independent download + sha512sum.

version       1.8.4.2 --> 1.8.4.3
port-version  1       --> 3 (continues after the previous port-version 2 patch-based recipe)

Co-authored-by: Cursor <cursoragent@cursor.com>

* whisper-cpp: fix spirv-headers -isystem shim on MSVC (QVAC-18993)

cl.exe does not understand the GCC/Clang `-isystem` flag --- it treats it
as a positional argument (a source file path), then tries to open the
following include directory path as a source file and dies with:

    c1xx: fatal error C1083: Cannot open source file:
    'C:/.../x64-windows/include': No such file or directory

Surfaced on tetherto/qvac/pull/2124 prebuild / win32-x64 against
whisper-cpp[vulkan].

The include shim now emits `/I<path>` on MSVC (and the legacy `/I` form,
no space, for maximal cl-flavour compatibility) and keeps `-isystem
<path>` on GCC/Clang.

Note: this PR previously also carried the ggml-speech port bump
(b4cf7b2) and the matching ggml-speech-side MSVC shim. Both have been
dropped because the consumer-side migration to ggml-speech
(QVAC-18992) is staying behind PR #13 / PR #28 for now; only the
whisper-cpp bits are required to land for the Android dynamic-backend
work on PR #2124.

Co-authored-by: Cursor <cursoragent@cursor.com>

* whisper-cpp: bump to 1.8.4.3#5 — repoint to tetherto/master after PR #28 merge (QVAC-18993, QVAC-19071)

`tetherto/qvac-ext-lib-whisper.cpp` PR #28 merged today (2026-05-21,
merge commit `f3102199`), completing the Group-1/2 merge chain on
`tetherto/master`:

  - PR #25 (QVAC-18991) merged 2026-05-20 — upstream whisper.cpp sync
  - PR #27 (QVAC-18966) merged 2026-05-20 — tts-cpp chatterbox <atomic> fix
  - PR #28 (QVAC-18993) merged 2026-05-21 — ggml-backend Android dynamic
                                            backend + per-arch CPU dlopen fallback

So `tetherto/master` now carries every commit this port previously
pinned from `Zbig9000/qvac-ext-lib-whisper.cpp@14620c8857fc2893`.
Repoints the `vcpkg_from_github` call:

  REPO    Zbig9000/qvac-ext-lib-whisper.cpp  ->  tetherto/qvac-ext-lib-whisper.cpp
  REF     14620c8857fc289313a3b0a82c9ce69a   ->  f3102199642e78bb2beee6b9e9537604
  SHA512  733effd6f77de859bd9f1cf1b6dfe492…  ->  64b102677abae7825985c946b1103cda…
  HEAD_REF QVAC-18993-bundled-ggml-android-…  ->  master

`diff -rq` of the two source tarballs is empty outside `parakeet-cpp/`
and `tts-cpp/` (separate vcpkg ports — not consumed by this port).
The whisper-cpp source itself is byte-identical between `14620c88` and
`f3102199`, so this is a REF-only port-version bump: same recipe, same
features, same patches list (still empty), same build output.

Also drops the "TEMPORARY pinning to Zbig9000 fork" block from the top
of `portfile.cmake` --- no longer applicable now that the upstream PR
chain has landed.

Closes the registry-side half of [QVAC-19071](https://tetherapp.atlassian.net/browse/QVAC-19071)
("Update qvac-registry-vcpkg and addon with new port versions") for
this release cycle. Consumer-side half (re-pinning
`packages/transcription-whispercpp/vcpkg-configuration.json`) goes
into qvac PR #2124 in a follow-up commit.

[QVAC-18993][QVAC-19071]

Co-authored-by: Cursor <cursoragent@cursor.com>

* whisper-cpp: address Gustavo PR #152 review (1.8.4.3#0, drop history, drop comment block)

Review comments from @GustavoA1604 on PR #152
(#152):

1. `ports/whisper-cpp/portfile.cmake`: "Dont add these comments"
   -> dropped the 19-line header that explained the REF history /
   tetherto vs Zbig9000 fork relation / future-bump notes.
2. `ports/whisper-cpp/vcpkg.json`: "Port version should start from 0,
   not 5" -> reset `port-version` 5 -> 0.
3. `versions/w-/whisper-cpp.json`: "Add only one entry here, version
   '1.8.4.3', port-version 0" -> collapsed the three historical
   `1.8.4.3` entries (port-versions 3, 4, 5 -- intermediate states
   that were never consumed off-fork) into a single entry at
   port-version 0 with the new git-tree
   `b4962d7acd7ce05fce118792a167e7aee36f1eba`. Older versions
   (1.8.4.2, 1.8.4.1, 1.7.x) untouched.

Also synced `versions/baseline.json` whisper-cpp port-version to 0.

REPO + REF + SHA512 (tetherto/qvac-ext-lib-whisper.cpp@f3102199, the
PR #28 merge commit) unchanged from the previous HEAD `f287037`.

[QVAC-18993][QVAC-19071]

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

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>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants