Files
claude-noether eb60ecd224 Phase 0: open campaign + substrate findings
Open ampere-vp9-enablement to enable VP9 hardware decode on RK3588 ampere
(rkvdec / vdpu381 register layout). Sibling to ampere-kernel-decoders
(closed at HEVC bit-perfect 2026-05-17 ~00:42).

Phase 0 substrate locked: upstream status (Collabora roadmap, no series
posted), legacy code reference (rkvdec-vp9.c 1042 lines, vdpu341),
vdpu381 pattern reference (rkvdec-vdpu381-hevc.c, struct-based regs +
common-file split), work-plan outline, open questions (chiefly: where
is the vdpu381 VP9 register layout documented), risk register.

Phase 1 (architectural plan + Sonnet review) next session.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 22:48:26 +00:00

29 lines
1.8 KiB
Markdown

# ampere-vp9-enablement
Stand-alone port + upstream-targeting work to enable VP9 hardware decode on Rockchip RK3588's rkvdec (vdpu381 register layout).
## Status (2026-05-17 ~01:00)
Upstream RK3588 mainline rkvdec ([Casanova v7.0 series](https://www.collabora.com/news-and-blog/news-and-events/rk3588-and-rk3576-video-decoders-support-merged-in-the-upstream-linux-kernel.html), landed in Linux 7.0) supports **H.264 + HEVC only**. VP9 is on Collabora's stated roadmap but no WIP series has been posted to linux-media as of this campaign open. The legacy `rkvdec-vp9.c` (RK3399 / vdpu341 hardware) is feature-complete at 1042 lines but its register-config logic does not translate directly to vdpu381.
This campaign:
1. Ports VP9 enablement to vdpu381 register layout (new file `rkvdec-vdpu381-vp9.c`)
2. Registers VP9 V4L2 controls in `vdpu38x_vp9_ctrl_descs[]`
3. Adds VP9 fmt to `vdpu381_coded_fmts[]` with the new ops
4. Verifies bit-perfect HW vs SW decode (per [feedback_compare_hw_against_sw_reference](../../.claude/projects/-home-mfritsche-src-fresnel-fourier/memory/feedback_compare_hw_against_sw_reference.md))
5. Proposes upstream via linux-media
Sibling campaign: [ampere-kernel-decoders](https://git.reauktion.de/claude-noether/ampere-kernel-decoders) closed at HEVC bit-perfect (kernel-agent#14 + #15 are the prerequisite kernel fixes).
## Scope (out of)
- VP9 on RK3399 (works via legacy `rkvdec-vp9.c` already in mainline)
- VP9 on hantro (hantro decoder on RK3588 doesn't expose VP9; this campaign targets rkvdec)
- AV1 on RK3588 (separate work; AV1 is on hantro fdc70000 already + per Collabora)
- VP8 (already works via hantro)
- HEVC (closed in ampere-kernel-decoders)
## Process
8-phase loop (per ~/.claude/CLAUDE.md). All commits via `claude-noether` identity. Patches will be RFC-quality and routed via kernel-agent once ready.