Commit Graph

6 Commits

Author SHA1 Message Date
marfrit 7d8d720631 iter39 Phase 7 CLOSE: vainfo + iter38 baseline PASS; Hi10P kernel/HW gap on RK3399
Phase 7 verification on fresnel (kernel 7.0-14 / linux-fresnel-fourier).

C1 vainfo enumeration: PASS — VAProfileH264High10 + VAProfileHEVCMain10
both listed; iter38 baseline 10 profiles intact at 12 total.

C5 iter38 5/5 baseline preserved: PASS — H.264 / HEVC / VP9 / VP8 /
MPEG-2 all libva == kdirect bit-exact, no regression from iter39
backend changes.

C2 Hi10P bit-exact vs kdirect: N/A — kdirect ALSO fails with EINVAL
(0 bytes output). The kernel ctrl table advertises Hi10P + NV15
CAPTURE but RK3399 HW doesn't actually decode 10-bit H264. Verified:
S_FMT(CAPTURE, NV15) succeeds; decode submits cleanly; CAPTURE buffer
returns all-zero. xxd 64 bytes of 0x00. SW reference has 222 unique
luma bytes.

C3 Main10 bit-exact vs kdirect: untested — system x265 is 8-bit-only
build, no kvazaar/x265-hbd in Arch repos, no Main10 sample downloaded
successfully. Same kernel-vs-HW caveat may apply.

Two backend fixes landed during Phase 7 (both pushed to gitea master):

  a13215d — skip pre-S_FMT NV15 CAPTURE format probe (rkvdec only
            advertises NV15 AFTER S_FMT(OUTPUT) + S_EXT_CTRLS(SPS))
  63fed87 — advertise P010 unconditionally in QueryImageFormats
            (ffmpeg-vaapi queries before CreateContext fires; gating
            on is_10bit hid the format from early consumers)

Without these the 10-bit decode pipeline can't even start. With them
it reaches the kernel cleanly.

Memory entry filed:
  feedback_rk3399_h264_hi10p_advertised_not_functional.md
  (kernel ctrl table necessary but NOT sufficient — always cross-check
   with kdirect before treating a profile as truly HW-supported)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 16:40:57 +00:00
marfrit 407c7c56e1 iter39 Phase 4-6 LANDED on backend — Phase 7 awaiting fresnel power-on
Adds the iter39 sub-profile (H264 Hi10P + HEVC Main10) FR landing
materials and resumption sequence to the campaign repo.

- phase4_iter39_subprofile_plan.md: full Phase 4 plan with Phase 5
  sonnet-architect review amendments folded in. Documents the
  Option A/B/C/D scope tree, the locked Option C choice (full NV15→P010
  userspace unpack), the LOC breakdown (~180), and the test plan.
- phase7_iter39_test_rig.sh: end-to-end test script for fresnel. Encodes
  Hi10P + Main10 fixtures, runs libva vs kdirect bit-exact comparison
  (both via `-vf hwdownload,format=p010le` to normalize the NV15 stride
  difference between paths), SSIM_Y check vs SW reference, and verifies
  the iter38 5/5 baseline still holds.
- PRE_COMPACT_HANDOFF.md: TL;DR table row for iter39 (committed
  pending validation), Phase 7 resumption sequence, internals-summary
  for future-session resumption.

Backend tip: `662f887` (iter39 α-31) + `8746690` (unpack self-test) on
gitea master. Self-test passes on noether x86_64; compile-test clean on
boltzmann aarch64 native; self-review of commit vs Phase 5 amendments
APPROVED. Phase 7 actual decode test blocked on fresnel power-on.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 09:22:34 +00:00
marfrit e66c5c0583 Update handoff doc for final iter38 close — 5/5 PASS in single libva session 2026-05-14 19:23:09 +00:00
marfrit 7ef4ac234b Final handoff doc: campaign closed at 5/5 PASS on 7.0-14 clean kernel 2026-05-14 16:52:18 +00:00
marfrit fde8a25779 Update handoff doc: HEVC Bug 5 fully fixed (3/3 PASS) 2026-05-14 15:32:27 +00:00
marfrit 422ecafca9 Add pre-compact handoff doc for session resumption 2026-05-14 14:55:15 +00:00