From fe597bbf6d6c7eefbd6ff0a3aaf9523d082e4f44 Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Fri, 24 Apr 2026 19:07:45 +0000 Subject: [PATCH] Known gotchas: IOMMU, firmware blob, HEVC UAPI, compositor vs decode, VOP2 cfg_done, multi-core VDPU381 --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 92a27c9..4d51d49 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,34 @@ HEVC once the stretch goal is viable. Patches upstreamed along the way (v4l2-request to FFmpeg, VDPU346 to linux-media) count double — they benefit the whole fleet. +## Known gotchas / watch-for + +Sign-posting only — details in linked sources. If you hit one of these, +expand the bullet with your specific find. + +- **IOMMU faults.** Collabora's Feb 2026 VDPU381 landing included specific + IOMMU fixes. If dmesg shows rockchip-iommu faults during decode, check + you're on a kernel that carries the fixes, not just the driver. + ([Collabora post](https://www.collabora.com/news-and-blog/news-and-events/rk3588-and-rk3576-video-decoders-support-merged-in-the-upstream-linux-kernel.html)) +- **Firmware blob.** rkvdec / rkvdec2 need a firmware file under + `/lib/firmware/rockchip/` (varies by SoC). Missing blob → driver probe + fails silently (no /dev/videoN). Check linux-firmware package currency. +- **HEVC UAPI version gating.** New explicit RPS controls arrived with + the Feb 2026 landing; GStreamer 1.28 + FFmpeg-preliminary honour them. + Older userspace on a newer kernel (or vice versa) fails in unintuitive + ways. Pin both sides when diagnosing. +- **Compositor-bound ≠ decode-bound.** The 2023 clehaxze result saw 80% + CPU at 1080p60 H.264 — that was the compositor + dmabuf path, not + decode. Always attribute CPU with `perf top` / `top -H` before calling + decode slow. Use `mpv --vo=null` to isolate the decode path. +- **VOP2 cfg_done (RK3588).** Decoded frames appear via VP0/VP1/VP2; if + the shadow-register latch dance is wrong, frames don't show. See + `feedback_rk3588_cfg_done.md` + `project_bin_vp0_theory.md` in noether + memory. Touches Coulomb / Bin territory — if it gets there, ask. +- **Multi-core VDPU381 on RK3588.** Silicon has two decoder cores; + upstream multi-core support is still landing. Until then, ampere / + boltzmann run on one core and under-deliver vs headline specs. + ## Build infrastructure Fourier touches two kinds of builds: userspace (FFmpeg + patches, GStreamer,