[DO NOT MERGE] QVAC-19254 chore: tts-ggml Adreno device-farm via overlay-ports (ext-ggml PR#17, whisper.cpp PR#36)#2320
Closed
pratiknarola-t wants to merge 13 commits into
Closed
Conversation
df4262f to
0d9cf8c
Compare
…st branch + un-quarantine Adreno GPU smoke for Device Farm validation Bumps the tts-ggml default-registry baseline to tetherto/qvac-registry-vcpkg@945210e (QVAC-19254-android-devicefarm-test branch), which pins: - ggml-speech port REF -> tetherto/qvac-ext-ggml@2bb83370 (combined test branch with PR #14 Vulkan-Adreno guards + PR #15 OpenCL elementwise kernels on top of speech tip c9126afc / v0.10.2) - tts-cpp port REF -> tetherto/qvac-ext-lib-whisper.cpp@afe2fd21 (PR #35 head: Adreno backend tier policy) Adds spirv-headers to the microsoft/vcpkg registry packages array so ggml-speech's vulkan-feature dependency resolves (mirrors what transcription-whispercpp already does for the whisper-cpp port). Removes the Android short-circuit in the Chatterbox GPU smoke test so the AWS Device Farm Adreno 740 pool actually exercises the GPU path. Without the still-uncommitted ggml-opencl device_description fix, the tts-cpp tier policy may pick Vulkan on Adreno; PR #14's Qualcomm-gated guards are the safety net being validated in that path. PR #15's OpenCL kernels are exercised only if the policy picks OpenCL. Revert this branch once PR #14 / PR #15 / PR #35 land on their respective default branches and a registry bump captures the merged state. QVAC-19254
…54-android-devicefarm-test branch Without the 'reference' field, vcpkg only fetches the registry's default ref (main) and the baseline SHA 945210e5 -- which lives on QVAC-19254-android-devicefarm-test in qvac-registry-vcpkg, not main -- is unreachable from the local clone, so vcpkg can't see the new tts-cpp#4 / ggml-speech#1 versions. Setting 'reference' explicitly tells vcpkg which branch to fetch so the test-branch commit becomes reachable. Documented at learn.microsoft.com/en-us/vcpkg/consume/git-registries. QVAC-19254
…RV-Headers patch The previous baseline 945210e5 shipped ports/ggml-speech/patches/ 0001-ggml-vulkan-find-spirv-headers.patch authored against speech tip c9126afc. PR #14's mul_mat_vec / Adreno guards (also on this test branch) added a Qualcomm-gated 'liblog' link block between Vulkan target_link_libraries and target_include_directories in src/ggml-vulkan/CMakeLists.txt, breaking the patch's hunk-2 context. Registry branch QVAC-19254-android-devicefarm-test was amended + force-pushed with a regenerated patch whose hunk-2 context matches the PR-#14 layout. Tree-SHA of ports/ggml-speech updates from e941a423... -> 381370e3...; baseline.json + versions/g- updated to match. QVAC-19254
… Device Farm Adreno smoke The Device Farm Chatterbox GPU smoke test (un-quarantined in the prior commit) showed backendDevice=0 / backendId=0 (CPU) on Samsung S25 Ultra + Pixel 9 even with useGPU=true. Logcat traced it to the ChatterboxModel::loadLocked() #ifdef __ANDROID__ block that unconditionally forces useGpu=false before tts_cpp::chatterbox::Engine is constructed -- so tts-cpp's init_gpu_backend (with PR #14 + PR #15 fixes) is never exercised on Android. Lifting the guard on the test branch so the AWS Device Farm Adreno smoke can validate the PR #14 (Vulkan-Adreno guards) and PR #15 (OpenCL elementwise kernels) paths end-to-end. The symmetric SupertonicModel guard stays in place (out of scope; Supertonic GPU smoke currently passes via JS-layer rejection on the test's invalid model path). [DO NOT MERGE] branch only. QVAC-19254
Re-pins the QVAC-19254 default-registry baseline to qvac-registry-vcpkg 61f04e9 (tts-cpp 2026-05-20#5), which carries the Android Adreno-only GPU allowlist from qvac-ext-lib-whisper.cpp PR #35 (6d3751be): non-Adreno Android GPUs fall back to CPU instead of aborting. Supersedes the earlier defensive-try-catch attempt (verified ineffective: ggml_abort is not catchable from C++).
…ched); Android GPU-smoke tolerates CPU fallback - vcpkg-configuration.json baseline -> 990ebbf (tts-cpp 0a85f1d1: run_hift_decode capability-gates the S3Gen ggml_backend_sched so Metal/desktop run the HiFT graph directly instead of aborting in the scheduler split; Adreno OpenCL stays on the sched). - gpu-smoke.test.js: a clean CPU fallback is an expected PASS on Android (GPU is Adreno-only by design; non-Adreno vendors route to CPU). iOS stays STRICT (must engage Metal) as the regression guard; Adreno OpenCL/Vulkan still asserted when the GPU is engaged.
…ashed PR #35 5205428e)
…p registry test-branch pin) Replace the default-registry test-branch reference (QVAC-19254-android-devicefarm-test) with overlay-ports copied straight into the PR, so the exact tts-cpp / ggml-speech sources under test are visible here without the registry indirection (reviewer feedback). default-registry reverts to the production baseline 74d2dfd0 (no baseline advance). tts-cpp overlay -> qvac-ext-lib-whisper.cpp PR #36 @ 5205428e; ggml-speech overlay -> qvac-ext-ggml PR #14 + #17 @ 2bb83370.
…-only source The overlay's 0001-ggml-vulkan-find-spirv-headers.patch was contexted against PR #14's ggml-vulkan/CMakeLists.txt change (the Android log-link block), so it did not apply on the PR #17-only source (8de98a43) -> the vulkan-feature build failed on Linux/Android/Windows. Re-context hunk 2 onto plain PR #17 (target_include_directories) so the spirv-headers build glue applies independently of PR #14. Verified with 'git apply --check' against 8de98a43.
…a9a389 (HiFT graph cache) Point the tts-cpp overlay-port at PR #36 HEAD 83a9a389 = GPU scheduling (5205428e) + the Android Adreno-only GPU allowlist (is_qualcomm refinement) + the HiFT direct-path graph cache. Re-verifies the device-farm CI on the updated combined stack (with ggml-speech still at PR #17 8de98a43).
…4f47d2 (is_qualcomm OR + Supertonic graph cache)
Picks up the gallocr allocation-failure checks on the Supertonic direct path; REF + SHA512 updated to the new PR #36 HEAD.
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.
What
Switches this
[DO NOT MERGE]Adreno TTS device-farm PR from a registry test-branch reference to overlay-ports copied straight into the PR, per reviewer feedback — so the exacttts-cpp/ggml-speechsources under test are visible here, with no registry-branch indirection to chase.Overlay ports (
packages/tts-ggml/vcpkg-overlay-ports/)tts-cpp→qvac-ext-lib-whisper.cppPR testing registry server workflow #36 @5205428e(Adreno OpenCL GPU scheduling: Supertonic + Chatterbox/S3Gen, capability-gated, + Android Adreno-only allowlist)ggml-speech→qvac-ext-ggml@2bb83370= speech tip (v0.10.2 sync) + PR qvac-lib-dl-hyperdrive-integration-test2 #14 (ggml-vulkan Adreno 740 / Qualcomm) + PR fixing workflow #17 (ggml-opencl elementwise kernels for S3Gen)Both are verbatim copies of the registry ports — same
vcpkg_from_githubREFs + SHA512s the prior registry-based run used — so the tested artifact is unchanged; only the indirection is removed.default-registry
Reverted to the production baseline
74d2dfd0(noreference, no baseline advance). Overlay ports supplytts-cpp+ggml-speech; everything else resolves from the production registry exactly as onmain.CI
Device-farm run: https://github.com/tetherto/qvac/actions/runs/26821191379