Skip to content

/sync-upstream coverage report — 2026-05-02

Generated by the /sync-upstream skill in port-only mode. Read-only planning artifact; no code is ported by this PR. Companion to the prior 2026-04-29 quarterly snapshot in docs/upstream-backlog-audit-2026-04-29.md.

Run metadata

  • Date of run: 2026-05-02
  • Skill version: .claude/skills/sync-upstream/SKILL.md
  • Topology: port-only (git merge-base master upstream/master returns empty — exit 1).
  • Upstream remote: https://github.com/Netflix/vmaf.git (branch master).
  • Upstream tip: 151a9822 2026-05-02 Merge pull request #1509 from Netflix/feature/routine-test-additions.
  • Fork tip: e266bf8e 2026-05-02 feat(vulkan): T7-29 part 4 — v2 async pending-fence ring (ADR-0235) (#241).
  • Range scanned: last 50 upstream commits (49 unique entries).
  • Method: extracted upstream-master commits with git log upstream/master -50, cross-referenced each upstream short-SHA against SHA mentions in fork commit messages (titles + bodies, all branches). A match marks the upstream commit PORTED on the fork. Unmatched commits are then triaged against the prior quarterly audit and the relevant ADRs to derive PORT / DEFER / SKIP.

Headline counts

Category Count
Upstream commits scanned 49
PORTED (already on fork) 20
UNPORTED — total 29
  PORT (small fix worth picking) 9
  DEFER (depends on something else / scoped to a T-row) 6
  SKIP (intentional fork divergence, dependabot-on-fork, or i686 owned by fork CI) 14

PORTED — already on fork

These 20 upstream commits are referenced explicitly by short-SHA in fork commit messages, so they have already been picked up via /port-upstream-commit or folded into a larger fork PR.

upstream subject
c70debb1 libvmaf/test: port new adm/vif/speed tests
314db130 libvmaf/feature: remove empty translation unit all.c
8c645ce3 feature/vif: port several feature extractor options
8a289703 adm: add fallback for extract_epi64 for 32-bit
1b6c3886 x86/cpu: remove limit of avx+ on 32-bit
b949cebf feature/motion: port several feature extractor options
4dcc2f7c feature/float_adm: port several feature extractor options
2c9bb74e feature/cambi: add effective_eotf
798409e3 Fix null deref crash on prev_ref update in pure CUDA pipelines
d3647c73 feature/speed: port speed_chroma and speed_temporal extractors
f3a628b4 feature/common: generalize avx convolution for arbitrary filter widths
bc744aa3 loosen assertion precision for vif mirror bugfix
18e8f1c5 feature/vif: add vif_sigma_nsq
41d42c9e feature/vif: port helper functions, bugfix for edge mirroring
4ad6e0ea feature/vif: port helper functions
62f47d59 loosen assertion precision for motion mirror bugfix
966be8d5 libvmaf/feature: port adm updates
42276bc5 feature/cambi: port updates
f740276a libvmaf: add support for VMAF_FEATURE_EXTRACTOR_PREV_REF
32b115df libvmaf: add experimental VMAF_BATCH_THREADING and VMAF_PICTURE_POOL threading modes

UNPORTED — triage

PORT — small fix worth picking

upstream subject rationale
7affcb7c x86/adm: fix compilation for 32-bit clang small portability fix; partner to the already-ported 32-bit ADM/cpu fallbacks (PR #212). Unblocks fork's i686 cross build (ADR-0151).
49d46e23 libvmaf/predict: port chroma_from_luma correction numerical-correctness bugfix in the predictor path; touches code the fork still mirrors verbatim. Verify Netflix golden gate after picking.
de538216 feature/integer_vif: port vif_skip_scale0 follow-up bugfix on integer_vif; feeds into the ongoing T-NEW vif-divergence reconciliation. Small, scoped.
4f5e366b integer_motion: fix dict leak in motion_force_zero case clear leak fix; no fork divergence in this branch of motion. Trivial port.
9a2ca9b4 Fix enable_tools=false breaking test builds (#1474) depends on 84614a8b (enable_tools option). If we take that, take this.
7c4beca3 Fix models symbols names when vmaf is compiled as a subproject improves embeddability — relevant to mcp-server/, FFmpeg patch consumers, and possible meson subproject consumers. Self-contained meson change.
7e16db0a ssim: add scale parameter to control decimation factor surface enrichment, additive parameter; the fork has not diverged on ssim.
332dde62 y4m_input: expand to support yuv444p12 / yuv422p12 / yuv420p12 additive y4m support; useful for HDR pipelines. Self-contained reader change.
1b08bb4d runtime load CUDA driver libraries using nv-codec-headers and support clang compilation strong-fit improvement for the fork's CUDA backend (clang+CUDA is on the dev matrix). Read carefully against the fork's existing CUDA runtime layer.

DEFER — depends on something else / scoped to a backlog row

upstream subject rationale
2e6bbb65 python/routine: refactor read_dataset into SubjectiveDatasetReader class python-harness refactor; fork has its own training/eval harness layered on top (python/vmaf/workspace/). Defer until we re-audit harness divergence.
2f2bb601 python/test: add dataset reading tests for resampling, width/height, workfile_yuv_type rides on 2e6bbb65. Defer with it.
151a9822 Merge pull request #1509 from Netflix/feature/routine-test-additions merge wrapper around the two python/routine commits above. Defer with the parent pair.
9dac0a59 libvmaf/feature: update alias map for cambi/speed partial: cambi half is on fork (PR #160 79288e8d); speed half pends per the prior audit's T-NEW-1. Defer until speed-extractor reconciliation lands.
a44e5e61 libvmaf/feature: port motion updates, bugfix for edge mirroring fork has consciously diverged on motion per Research-0024 + ADR-0145. The bugfix sub-piece may still be relevant; defer to the next motion-divergence re-audit, do not mass-port.
dae6c1a0 libvmaf/feature: add motion_v2 new metric variant; pairs with the motion-divergence story (ADR-0145). Defer until we decide whether to absorb motion_v2 or keep the fork's bespoke variant.

SKIP — intentional fork divergence / fork-managed CI / fork-managed deps

upstream subject reason for SKIP
4c1c7ad3 gh: add 32-bit clang compilation CI-config delta; fork manages its own CI matrix per ADR-0151.
f6d6dde1 gh: add 32-bit cross build to CI same as above — fork has its own i686 build-only row (PR #87).
eb88c009 build(deps): bump actions/upload-artifact 5→7 dependabot is enabled on the fork; bumps land independently.
6b75f377 Bump actions/checkout 5→6 dependabot-on-fork (same reasoning).
e0d9b82d Bump actions/setup-python 5→6 dependabot-on-fork.
ec8b2fb7 Bump actions/checkout 4→5 dependabot-on-fork.
dcdb49a0 Bump actions/upload-artifact 4→5 dependabot-on-fork.
f8fb7b48 feature/adm: temporarily disable adm_decouple_s123 x86 simd upstream temporary regression mitigation; fork's SIMD path has progressed past this state — the underlying defect either does not reproduce on fork or has already been addressed by later fork SIMD work. Re-confirm before any future port.
6375a4be tools/cli_parse: add --aom_ctc v7.0 fork has diverged on CLI semantics (full-precision --precision, etc.); CTC presets are tracked separately in the CLI roadmap.
b044ae39 tools/cli_parse: add CHECKED_REPLACE upstream-internal CLI helper macro; fork's cli_parse has its own structure. Re-port only if/when CTC-preset work is taken on.
850b9a67 tools/cli_parse: use CHECKED_APPEND same group as above.
45e2bd52 libvmaf: make vmaf_register_metadata_handler private API-narrowing change. The fork still exposes the symbol (and FFmpeg's vf_libvmaf patch consumes the public surface). Skipping preserves ABI stability per ADR-0186 (FFmpeg-patch invariant).
84614a8b Add enable_tools option (#1460) meson-options surface change — would require an ADR on fork; fork already has its own meson option topology. Skip unless an explicit need arises.
44a92543 Additional AVX optimizations with build and vmaf accuracy fixes (#1452) fork has independently diverged on AVX paths (see Research-0024 and the multiple ADR-0142/0143/0144 family entries). Re-porting risks reintroducing rounding deltas that the fork's golden gate already locked down.
f5f36644 core/meson: build libsvm as separate static lib fork's meson layout has fork-specific library partitioning; would require an ADR. Skip pending a meson re-architecture review.

Tightly-scoped, low-risk, high-value picks for the next round of /port-upstream-commit PRs:

  1. 4f5e366binteger_motion: fix dict leak in motion_force_zero case. Pure leak fix; no SIMD/divergence interaction. Lowest risk.
  2. 7affcb7c — x86/adm: fix compilation for 32-bit clang. Direct partner to PR #212; closes the i686 build-error class.
  3. 49d46e23 — libvmaf/predict: port chroma_from_luma correction. Numerical-correctness bugfix; verify Netflix golden + /cross-backend-diff.
  4. 7c4beca3 — Fix models symbols names when vmaf is compiled as a subproject. Self-contained meson change; benefits MCP/FFmpeg embedders.
  5. 332dde62 — y4m_input: yuv444p12/yuv422p12/yuv420p12 support. Additive reader change; widens HDR fixture coverage for tiny-AI training.

Out of scope for this PR

  • No commits are actually ported here — this is a planning artifact only.
  • No build / lint / test runs were executed.
  • No code paths outside docs/sync-upstream/ are touched.

Each pick above lands as its own /port-upstream-commit <sha> PR, per the skill's port-only-mode guidance.