Files
fresnel-fourier/phase8_iteration34_close.md
marfrit 70ddbd6c4b iter34 close: kernel 7.0-14 CLEAN ship — 5/5 codecs PASS
iter33 VP8 diagnostic printks reverted from rockchip_vpu2_hw_vp8_dec.c
and hantro_g1_vp8_dec.c. 6 base patches retained (DTS + dma_resv +
hantro/rga fences).

Post-reboot 5-codec regression on 7.0-14:
- h264   libva=dd4f5f2d552c07bc L==K L==SW
- hevc   libva=108f925bb6cbb6c9 L==K L==SW
- vp9    libva=cf35908ae0f9ab60 L==K L==SW
- vp8    libva=d3231e5b6c0ee10b L==K L==SW
- mpeg2  libva=95c5905890c937d4 L==K L!=SW (HW IDCT ≤1 LSB precision)

dmesg | grep iter — empty. Substrate clean.

Note: /dev/video* and /dev/media* device numbers SHIFTED between
kernel boots (rkvdec /dev/video1→/dev/video3, hantro /dev/video3→
/dev/video2 between 7.0-13 and 7.0-14). Updated memory entry to
flag this.
2026-05-14 16:50:59 +00:00

58 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Iteration 34 — Phase 8 (close): Kernel cleanup → 7.0-14 SHIPPING
Closes 2026-05-14, fifth campaign-day milestone. Strips iter33 VP8 diagnostic printks, ships clean kernel matching the 5/5 PASS state.
### Goal
Remove the iter33 `vpu2_iter33_vp8` printk in `rockchip_vpu2_hw_vp8_dec.c` (and the dead `hantro_iter33_vp8` block in `hantro_g1_vp8_dec.c` that was added to the wrong function in iter33 first attempt). Ship clean 7.0-14.
### Result
- `linux-fresnel-fourier 7.0-14` built + deployed.
- 5/5 codec regression PASS on the clean kernel — libva == kdirect bit-exact for all 5 codecs (H264, HEVC, VP9, VP8, MPEG-2). 4/5 also bit-equal to SW reference (MPEG-2 differs from SW by ≤1 LSB IDCT precision artifact — same as iter33).
- `dmesg | grep iter` empty — diagnostic printks gone.
### Devices on 7.0-14 (note: enumeration shifted from 7.0-13)
| Driver | Video device | Media device |
|---|---|---|
| rockchip-rga | /dev/video0 | n/a |
| rk3399-vpu-enc (encoder) | /dev/video1 | (shared with hantro) |
| rk3399-vpu-dec (hantro) | /dev/video2 | /dev/media0 |
| rkvdec | /dev/video3 | /dev/media1 |
| uvcvideo (USB cam) | /dev/video4-5 | /dev/media2 |
The /dev/video* and /dev/media* numbers shift between kernel boots based on probe order. Always re-probe via `v4l2-ctl --info` and `media-ctl -d /dev/mediaN -p` before hard-coding paths in test scripts.
### Substrate state at iter34 close
Backend fork tip `7e0848d` (α-25 + α-29 + α-30 + iter29/30/33 env-gated DIAG probes; all three letter-fixes are load-bearing).
Kernel `linux-fresnel-fourier 7.0-14` clean, no diagnostic printks.
### Open items (post iter34)
1. Backend env-gated DIAG cleanup (low priority): iter29 `LIBVA_HEVC_DUMP_SLICE_TAIL`, iter30 `LIBVA_TS_SCALE`, iter33 `LIBVA_VP8_DUMP_FRAME`. Env-gated, no behavior change without env set. Could clean up to keep ship-ready source minimal. Or leave for future regression debugging.
2. α-26 cosmetic revert (`decode_params->short_term_ref_pic_set_size = picture->st_rps_bits` — mis-routed; rkvdec doesn't use). Could revert to 0 to match V4L2 spec semantics.
3. Libva multi-device probe — let auto-detect support both rkvdec and hantro in a single session, instead of requiring LIBVA_V4L2_REQUEST_VIDEO_PATH override per codec. Architectural change in libva backend.
### Campaign FINAL state
| Bug | Status | Fix |
|---|---|---|
| Bug 4 (H.264 keyframe-partial) | FIXED iter25 α-25 | rkvdec image_fmt pre-seed |
| Bug 5 (HEVC libva all-zero CAPTURE) | FIXED iter25 + iter31 | α-25 + α-29 (st_rps_bits to slice_params) |
| VP8 wrong output through libva | FIXED iter33 α-30 | prepend VP8 uncompressed header to OUTPUT |
| MPEG-2 HW differs from SW | NOT A BUG | hantro IDCT precision, libva==kdirect bit-exact |
| Kernel diagnostic printks | CLEANED iter32 + iter34 | 7.0-14 ship |
| Codec | libva 10F sha | kdirect 10F sha | SW 10F sha | L==K | L==SW |
|---|---|---|---|---|---|
| H.264 | dd4f5f2d552c07bc | same | same | ✓ | ✓ |
| HEVC | 108f925bb6cbb6c9 | same | same | ✓ | ✓ |
| VP9 | cf35908ae0f9ab60 | same | same | ✓ | ✓ |
| VP8 | d3231e5b6c0ee10b | same | same | ✓ | ✓ |
| MPEG-2| 95c5905890c937d4 | same | 933b744134e47ba4 | ✓ | ~ (≤1 LSB diff) |
**5/5 codecs PASS** the libva-vs-kdirect bit-exact contract. Campaign closed.