Repository navigation
fix(ci): update parity gate motion metric keys to match default emissions - #1676
Merged
Merged
Conversation
lusoris
force-pushed
the
fix/ci-parity-gate-stale-keys
branch
from
October 1, 2026 10:49
501627a to
680b283
Compare
…ions
Update FEATURE_METRICS["motion"] in scripts/ci/cross_backend_parity_gate.py
and scripts/ci/cross_backend_vif_diff.py to ("integer_motion2",
"integer_motion3"). The previous mapping included "integer_motion", which
the CLI only writes in debug mode; consequently, the default 16-feature
parity gate run halted on the motion cell with KeyError: 'integer_motion'.
Update scripts/ci/test_cross_backend_feature_names.py to test active backends
(cuda, sycl, hip) instead of the removed vulkan backend, resolving 3 test
failures. Add test_motion_cells_read_emitted_keys to
core/test/test_parity_gate_metric_names.py, unit tests in
scripts/ci/test_cross_backend_parity_gate.py, and e2e validation in
core/test/test_cuda_parity_gate_default_run.py (registered in
core/test/meson.build).
Verified on RTX 4090: default all-features parity matrix for CPU vs CUDA
runs to completion with all 18 features OK.
lusoris
force-pushed
the
fix/ci-parity-gate-stale-keys
branch
from
October 1, 2026 11:01
680b283 to
5075f76
Compare
This was referenced Oct 1, 2026
Merged
5 of 9 tasks
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.
Summary
scripts/ci/cross_backend_parity_gate.pyandcross_backend_vif_diff.pymappedFEATURE_METRICS["motion"]to("integer_motion", "integer_motion2", "integer_motion3"). Because neither CPU nor CUDA emitsinteger_motionin default (debug=false) mode,diff_frames()raisedKeyError: 'integer_motion', causing a default all-features parity matrix run to abort immediately on its motion cell.This PR updates
FEATURE_METRICS["motion"]to("integer_motion2", "integer_motion3")matching default emissions. It also updatesscripts/ci/test_cross_backend_feature_names.pyto test active backends (cuda,sycl,hip) instead of the removedvulkanbackend (resolving 3/3 test failures), addstest_motion_cells_read_emitted_keysincore/test/test_parity_gate_metric_names.py, adds unit tests inscripts/ci/test_cross_backend_parity_gate.py, and addscore/test/test_cuda_parity_gate_default_run.py(registered incore/test/meson.build).Verified on RTX 4090: default all-features run for CPU vs CUDA completes with all 18 features OK in ~8 seconds.
Type
feat— new featurefix— bug fixperf— performance improvementrefactor— no behavior changedocs— documentation onlytest— test-onlybuild/ci— tooling / infraport— cherry-pick from upstream Netflix/vmafsycl/cuda/simd— backend-specificChecklist
make format && make lintis green locally.pytest scripts/ci/test_cross_backend_feature_names.py scripts/ci/test_cross_backend_parity_gate.pypasses 71/71,test_parity_gate_metric_namespasses, andtest_cuda_parity_gate_default_runpasses./cross-backend-diffand the worst ULP is <= 2. Parity gate tooling only..c/.cpp/.cu/.h/.hpp, it has the appropriate license header (seeCONTRIBUTING.md).!orBREAKING CHANGE:and the migration path is documented below.docs/adr/_index_fragments/<NNNN-slug>.mdand the slug is appended todocs/adr/_index_fragments/_order.txt.Bug-status hygiene (ADR-0165)
docs/state.mdupdated in this PR:T-CI-PARITY-GATE-STALE-METRIC-KEYS-2026-09-29moved to Recently closed.Netflix golden-data gate (ADR-0024)
assertAlmostEqual(...)score in the Netflix golden Python tests.Cross-backend numerical results
Tooling fix for
cross_backend_parity_gate.pyandcross_backend_vif_diff.py.Default 18-feature matrix run completes cleanly CPU vs CUDA on RTX 4090:
adm: OK (1.000e-06)cambi: OK (0.000e+00)ciede: OK (1.200e-05)float_adm: OK (2.000e-06)float_moment: OK (0.000e+00)float_motion: OK (3.000e-06)float_ms_ssim: OK (1.000e-06)float_ms_ssim_lcs: OK (1.000e-06)float_psnr: OK (0.000e+00)float_ssim: OK (1.000e-06)float_ssim_lcs: OK (1.000e-06)float_vif: OK (2.800e-05)motion: OK (0.000e+00)motion_v2: OK (0.000e+00)psnr: OK (0.000e+00)psnr_hvs: OK (8.300e-05)ssimulacra2: OK (0.000e+00)vif: OK (0.000e+00)Deep-dive deliverables (ADR-0108)
AGENTS.mdinvariant note — no AGENTS.md invariant needed: test and tooling change only.python3 scripts/ci/cross_backend_parity_gate.py --vmaf-binary build/tools/vmaf --reference python/test/resource/yuv/src01_hrc00_576x324.yuv --distorted python/test/resource/yuv/src01_hrc01_576x324.yuv --width 576 --height 324 --backends cpu cudachangelog.d/fixed/ci-parity-gate-motion-keys.md.docs/rebase-notes.md.