Skip to content

bench+docs: re-pin the dead benchmark corpus and close the encoder compile gap - #48

Merged
lusoris merged 1 commit into
masterfrom
chore/close-verification-gaps
Aug 30, 2026
Merged

bench+docs: re-pin the dead benchmark corpus and close the encoder compile gap#48
lusoris merged 1 commit into
masterfrom
chore/close-verification-gaps

Conversation

@lusoris

@lusoris lusoris commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

The two gaps v0.2.0 shipped as documented rather than fixed. Neither was going to close itself.

1. Encoder TUs are now compile-verified

The SDKs turned out to be already installed — oneVPL 2.17 (via libvpl), libaom 3.15.0, SVT-AV1 4.1.0. The earlier failure was that configure had not enabled them, and that oneVPL's header is vpl/mfxvideo.h reached through --enable-libvpl, not the bare mfxvideo.h belonging to the older libmfx path.

With --enable-libvpl --enable-libaom --enable-libsvtav1 --enable-nvenc, all eleven Pelorus-patched libavcodec translation units compile with zero errors and zero warningsqsvenc, qsvenc_h264, qsvenc_hevc, libaomenc, libsvtav1, nvenc, nvenc_h264, nvenc_hevc, nvenc_av1, vulkan_encode, bsf/pelorus_fgs — the binary links, and the AVOptions register on exactly the intended encoders:

encoder Pelorus options
h264_nvenc, hevc_nvenc pelorus_roi, pelorus_me_hints
av1_nvenc pelorus_roi, pelorus_film_grain
h264_qsv, hevc_qsv pelorus_roi
libaom-av1, libsvtav1 pelorus_roi
h264_vulkan, hevc_vulkan, av1_vulkan pelorus_roi

The asymmetry is correct by design — pelorus_me_hints is H.264/HEVC-only (AV1 uses a different per-superblock hint struct), pelorus_film_grain is AV1-only — and each lands on exactly those. libx264 and libvpx-vp9 carry none, confirming nothing leaked into a shared option table.

2. The bbb corpus is re-pinned — and this resets its baseline

download.blender.org 404s for the pinned clip (HEAD and ranged GET) and no mirror serves the same bytes, so fetch-corpus.sh could not run on a cold machine.

The replacement deliberately preserves the workload shape: 640x360, yuv420p, 48 frames — an identical 16,588,800-byte decoded .yuv, so the harness does exactly the same amount of work. What changes is the pixels: a different encode and segment of Big Buck Bunny.

So absolute bbb numbers do not carry across 2026-08-30. corpus.lock, benchmarking.md and bench-results.md each state that at the boundary. synth-banding is lavfi-generated and unaffected.

Verified cold, not assumed: fetch-corpus.sh downloads, the sha256 matches, extraction yields 16,588,800 bytes, and the frames carry real moving content (YMIN 23, YAVG ~98, YMAX 255, varying frame to frame) rather than black or a static title card.

Gates

21/21 fast, changelog in sync. ADR-0143, the rebase notes and the migration brief all updated to record the closed gap.

🤖 Generated with Claude Code

Two gaps that were documented rather than fixed at v0.2.0. Neither closes itself.

1. Encoder TUs are now compile-verified. The SDKs were in fact already installed
   (oneVPL 2.17 via libvpl, libaom 3.15.0, SVT-AV1 4.1.0) -- the earlier failure
   was only that configure had not enabled them, and that oneVPL's header is
   vpl/mfxvideo.h reached via --enable-libvpl, not the bare mfxvideo.h of the
   older libmfx path. With them enabled, all ELEVEN Pelorus-patched libavcodec
   translation units build with zero errors and zero warnings, the binary links,
   and the AVOptions register on exactly the intended encoders: pelorus_me_hints
   on H.264/HEVC NVENC only, pelorus_film_grain on av1_nvenc only, pelorus_roi
   across all ten steered encoders, and none on libx264/libvpx-vp9 -- so nothing
   leaked into a shared option table.

2. The bbb corpus is re-pinned, and this RESETS ITS BASELINE. The previous
   download.blender.org clip 404s and no mirror serves the same bytes, so
   fetch-corpus.sh could not run cold. The replacement deliberately preserves the
   workload SHAPE -- 640x360 yuv420p, 48 frames, an identical 16,588,800-byte
   decoded .yuv -- so the harness does the same work, but it is a different encode
   and segment of Big Buck Bunny. Absolute bbb numbers therefore do not carry
   across 2026-08-30; corpus.lock, benchmarking.md and bench-results.md all say so
   at the boundary. synth-banding is lavfi-generated and unaffected.

   Verified cold: fetch-corpus.sh downloads, the sha256 matches, extraction yields
   16,588,800 bytes, and the frames carry real moving content (YMIN 23, YAVG ~98,
   YMAX 255, varying per frame) rather than a black or static title card.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@lusoris
lusoris merged commit b5b16f3 into master Aug 30, 2026
2 of 4 checks passed
@lusoris
lusoris deleted the chore/close-verification-gaps branch August 30, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant