Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions changelog.d/fixed/ci-libvmafx-tad-link.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Fixed

- **CI: libvmafx_tad link error** — CI builds on Ubuntu runners failed with
`/usr/bin/ld: cannot find .../core/build/src/libvmafx_tad.a: No such file or directory`
because `enable_rust_features` defaulted to `true`. GitHub Actions Ubuntu runners
have `cargo` in PATH but lack `cbindgen` (the TAD crate build dependency), so the
`cargo build` step silently failed to produce the `.a`. The archive path was still
injected as a `link_arg` into every test that transitively linked libvmaf.a, blocking
the entire build. Fix: default `enable_rust_features=false`; opt in via
`-Denable_rust_features=true` when a full Rust + cbindgen toolchain is available.

- **CI: orphan test_ansnr_simd reference** — PR #38 (drop-ansnr) deleted
`core/test/test_ansnr_simd.c` but left its `executable()` and `test()` declarations
in `core/test/meson.build`. Meson halted configuration with
`ERROR: File test_ansnr_simd.c does not exist` on every CPU architecture.
Both declarations have been removed.
4 changes: 2 additions & 2 deletions core/meson_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,5 @@ option('fuzz',

option('enable_rust_features',
type: 'boolean',
value: true,
description: 'Build Rust-implemented feature extractors (requires cargo in PATH). ADR-0707 cbindgen pilot: TAD (Temporal Absolute Difference). Default ON when cargo is found; silently skips if cargo is absent.')
value: false,
description: 'Build Rust-implemented feature extractors (requires cargo + cbindgen in PATH). ADR-0707 cbindgen pilot: TAD (Temporal Absolute Difference). Default OFF — opt-in via -Denable_rust_features=true. CI runners may lack cbindgen, causing silent .a absence and link failure.')
26 changes: 2 additions & 24 deletions core/test/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -651,27 +651,7 @@ test_moment_simd = executable('test_moment_simd',
)
endif

ansnr_simd_test_archs = ['x86_64', 'x86', 'aarch64', 'arm64']
if ansnr_simd_test_archs.contains(host_machine.cpu_family())
test_ansnr_simd = executable('test_ansnr_simd',
['test.c', 'test_ansnr_simd.c',
'../src/mem.c', '../src/picture.c', '../src/ref.c',
'../src/dict.c', '../src/opt.c', '../src/log.c', '../src/predict.c',
'../src/metadata_handler.cpp', '../src/thread_locale.c', '../src/gpu_picture_pool.c', dnn_sources],
include_directories : [libvmaf_inc, test_inc, include_directories('../src/'),
include_directories('../src/feature/'), dnn_inc],
c_args : vmaf_cflags_common + dnn_defines,
dependencies : [math_lib, stdatomic_dependency, pthread_dependency, thread_lib,
gpu_all_deps, dnn_deps],
objects : [
common_cuda_objects,
platform_specific_cpu_objects,
libvmaf_cpu_static_lib.extract_all_objects(recursive: true),
libvmaf_feature_static_lib.extract_all_objects(recursive: true),
libsvm_static_lib.extract_all_objects(recursive: true),
],
)
endif
# test_ansnr_simd removed — ansnr feature dropped in PR #38 (feat/drop-ansnr-20260528).

ms_ssim_decimate_test_archs = ['x86_64', 'x86', 'aarch64', 'arm64']
if ms_ssim_decimate_test_archs.contains(host_machine.cpu_family())
Expand Down Expand Up @@ -1118,9 +1098,7 @@ if float_enabled and moment_simd_test_archs.contains(host_machine.cpu_family())
test('test_moment_simd', test_moment_simd, suite : ['fast', 'simd'])
endif

if ansnr_simd_test_archs.contains(host_machine.cpu_family())
test('test_ansnr_simd', test_ansnr_simd, suite : ['fast', 'simd'])
endif
# test_ansnr_simd suite registration removed — see executable stub removal above.

if iqa_convolve_test_archs.contains(host_machine.cpu_family())
test('test_iqa_convolve', test_iqa_convolve, suite : ['fast', 'simd'])
Expand Down
14 changes: 14 additions & 0 deletions docs/rebase-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -39812,6 +39812,20 @@ Touched files:
`docs/metrics/tad.md`,
`changelog.d/added/tad-rust-pilot.md`,

## CI fix: libvmafx_tad link error + orphan test_ansnr_simd — 2026-05-28

- **ADR**: no ADR required — pure CI infrastructure bug fix.
- `core/meson_options.txt` `enable_rust_features` default changed from `true` to
`false`. If you rebase a PR that adds a Rust extractor expecting `true`, change
the caller's `meson setup` invocation to pass `-Denable_rust_features=true` explicitly
rather than relying on the default. The Rust-TAD pilot itself is opt-in from this point.
- `core/test/meson.build` orphan entries for `test_ansnr_simd` removed (PR #38 dropped
the source file but missed the meson declarations). On rebase: do not re-add these
entries unless `core/test/test_ansnr_simd.c` is also restored.

**Affected files**: `core/meson_options.txt`, `core/test/meson.build`,
`changelog.d/fixed/ci-libvmafx-tad-link.md`, `docs/state.md`.

## CAMBI Python compat-layer sync v0.5 → v0.8 — 2026-05-28

- **ADR**: no ADR required — 1:1 upstream port with no fork-local divergence.
Expand Down
1 change: 1 addition & 0 deletions docs/state.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Fork bug-status — `docs/state.md`

<!-- markdownlint-disable MD013 -->
_Updated: 2026-05-28 (T-CI-LIBVMAFX-TAD-LINK-2026-05-28 closed — CI builds failed on all Ubuntu runners with `/usr/bin/ld: cannot find .../core/build/src/libvmafx_tad.a` (44 failures on PR #46). Root cause: `enable_rust_features` defaulted to `true` in `meson_options.txt`; GitHub runners have `cargo` but lack `cbindgen` (a build dependency of the TAD crate), so `cargo build` silently failed to produce the `.a` while the linker still referenced it. Secondary bug: PR #38 (drop-ansnr) deleted `test_ansnr_simd.c` without removing the `executable()` and `test()` declarations from `core/test/meson.build`, causing `ERROR: File test_ansnr_simd.c does not exist` on all CPU arches. Both fixed: `enable_rust_features` defaulted to `false`; orphan meson.build entries removed. Build and 49/49 fast tests verified locally. PR: fix/ci-libvmafx-tad-link-20260528. No ADR required — pure CI infrastructure bug fix.)_
_Updated: 2026-05-28 (T-CAMBI-V0.8-SYNC-2026-05-28 closed — Research-0732 item #4 resolved: `CambiFeatureExtractor` Python wrapper bumped from upstream v0.5 to v0.8. The `_validate_asset` guard (previously inlined in `_generate_result`) now fires before any I/O; notyuv assets missing `dis_enc_bitdepth` or using an 8-bit `workfile_yuv_type` with a >8-bit encode are rejected with a descriptive `AssertionError`. `CambiFullReferenceFeatureExtractor.VERSION` now inherits from the base class instead of being hardcoded. Two validation tests added to `python/test/cambi_test.py`. C `cambi.c` not modified. PR: chore/cambi-python-v0.8-sync. References: [Research-0732](research/0732-netflix-pipeline-backlog-audit.md) item #4, ADR-0709 Phase 4b umbrella.)_
_Updated: 2026-05-28 (T-SPEED-PYTHON-COMPAT-2026-05-28 closed — Research-0732 item #2: `SpeedChromaFeatureExtractor`, `SpeedTemporalFeatureExtractor`, and four `QualityRunner` wrappers (`SpeedChromaQualityRunner`, `SpeedChromaUQualityRunner`, `SpeedChromaVQualityRunner`, `SpeedTemporalQualityRunner`) ported from Netflix/vmaf upstream into `compat/python-vmaf/`. Smoke tests added to `python/test/feature_extractor_test.py`. Docs updated in `docs/metrics/speed_qa.md`. No ADR required — pure port. PR: feat/speed-python-compat-extractors.)_
_Updated: 2026-05-28 (T-VMAFX-EBPF-RESEARCH-4B6-2026-05-28 closed — eBPF optimization target research completed (Research-0733, ADR-0709 item 4b.6). Selected target: rclone FUSE page-cache bypass via eBPF kprobe on `fuse_file_read_iter`. Projected 15–40% job wall-time reduction on warm-cache nodes for 1080p60 clips; 37× p50 FUSE read latency reduction. Four-phase implementation plan (4b.6.a–4b.6.d) documented. Research-only PR; no code written. PR: docs/research-vmafx-ebpf-optimization-target.)_
Expand Down
Loading