# 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.