Skip to content

fix(ci): skip the CUDA parity-gate default run on a build without CUDA - #1698

Merged
lusoris merged 1 commit into
masterfrom
fix/parity-gate-default-run-skip-no-cuda
Oct 1, 2026
Merged

lusoris merged 1 commit into
masterfrom
fix/parity-gate-default-run-skip-no-cuda

Conversation

@lusoris

@lusoris lusoris commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes T-CI-PARITY-GATE-DEFAULT-RUN-NO-CUDA-BUILD-2026-10-01 (found while running --suite=fast --suite=gpu in a HIP-only build dir).

test_cuda_parity_gate_default_run (added in #1676) is registered in the slow and gpu suites of every build. On a libvmaf built without CUDA the CLI refuses --backend cuda (ADR-0498), every gate cell reports ERROR, and the test returned the gate's exit status, so a HIP-only or SYCL-only build dir had one failing test: 260 OK / 1 failed on ryzen-4090-arc with -Denable_hip=true -Denable_cuda=false.

The test already skipped when no CUDA device is present. A build without CUDA now skips the same way, through one helper (cuda_unavailable()). A CUDA build on a host whose device fails to initialise still fails.

core/test/test_cuda_parity_gate_skip.py (fast suite, device-free) builds the refusal from the format string in core/tools/vmaf.cpp and checks that it is a skip, that a parity failure is not, and that a missing SYCL backend says nothing about CUDA. It fails on the parent commit (3 errors).

Type

  • fix — bug fix

Deep-dive deliverables (ADR-0108)

  • Research digest — no digest needed: trivial (a skip condition in one test).
  • Decision matrix — no alternatives: only-one-way fix.
  • AGENTS.md invariant note — no rebase-sensitive invariants.
  • Reproducer / smoke-test command — under "Reproducer" below.
  • CHANGELOG fragment — changelog.d/fixed/ci-parity-gate-default-run-skip-no-cuda.md.
  • Rebase note — no rebase impact: fork-only test files.

Reproducer

python3 core/test/test_cuda_parity_gate_skip.py
# with a binary built without CUDA:
VMAF_BUILD_DIR=build-hip python3 core/test/test_cuda_parity_gate_default_run.py; echo $?   # 77

Bug-status hygiene (ADR-0165)

  • docs/state.md updated in this PR: T-CI-PARITY-GATE-DEFAULT-RUN-NO-CUDA-BUILD-2026-10-01 added to Recently closed.

Netflix golden-data gate (ADR-0024)

  • I did not modify any assertAlmostEqual(...) score in the Netflix golden Python tests.

test_cuda_parity_gate_default_run is registered in the slow and gpu suites
of every build. On a libvmaf built without CUDA the CLI refuses
--backend cuda (ADR-0498), every gate cell reports ERROR, and the test
returned the gate's exit status: a HIP-only or SYCL-only build dir had one
failing test under --suite=gpu.

The refusal is now a skip (exit 77), like a missing device, through one
helper. test_cuda_parity_gate_skip (fast suite, device-free) formats the
refusal from the string in core/tools/vmaf.cpp and checks that it is a
skip, that a parity failure is not, and that a missing SYCL backend says
nothing about CUDA.

Closes T-CI-PARITY-GATE-DEFAULT-RUN-NO-CUDA-BUILD-2026-10-01.
@lusoris
lusoris force-pushed the fix/parity-gate-default-run-skip-no-cuda branch from 68b3a0e to 2487fc4 Compare October 1, 2026 13:27
@lusoris
lusoris merged commit d004696 into master Oct 1, 2026
62 of 68 checks passed
@lusoris
lusoris deleted the fix/parity-gate-default-run-skip-no-cuda branch October 1, 2026 13:27
@github-actions github-actions Bot added the type:bug Something isn't working label Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant