Skip to content

media: rkvdec: Remove vb2_is_busy check (Chromium green-screen fix)#2

Open
dongioia wants to merge 1 commit into
7.1-rc1from
7.1-rc1-rkvdec-vb2-busy-fix
Open

media: rkvdec: Remove vb2_is_busy check (Chromium green-screen fix)#2
dongioia wants to merge 1 commit into
7.1-rc1from
7.1-rc1-rkvdec-vb2-busy-fix

Conversation

@dongioia
Copy link
Copy Markdown
Contributor

@dongioia dongioia commented May 1, 2026

Summary

Cherry-pick of Jianfeng Liu's fix on top of 7.1-rc1: removes the vb2_is_busy() check in rkvdec_s_ctrl() that prevents Chromium from changing the decoded image format mid-stream, causing green-screen artifacts during video playback.

This check is unique to the rkvdec driver among V4L2 stateless decoders in the kernel. Removing it aligns rkvdec with the standard behavior of other decoders, without regressions on mpv (which was not affected by the bug).

Why this is needed on 7.1-rc1

The 7.1-rc1 branch correctly includes Piotr Oniszczuk's VP9 VDPU381 v9 (775f61afcd4) and Sarma's 2K+ vscale/segmap fix (fe18891c82c), but is missing this Chromium-specific fix. Without it, any rebuild on 7.1-rc1 will reintroduce the green-screen that had already been resolved on the previously deployed kernel. The check is still present at drivers/media/platform/rockchip/rkvdec/rkvdec.c:174 on the 7.1-rc1 HEAD; this PR removes the 6 lines (declaration of vq + assignment + if (vb2_is_busy) block).

Authorship

The commit preserves the original authorship of Jianfeng Liu (liujianfeng1994@gmail.com, original date 2025-09-04) — first applied on the previously deployed 7.0-piotr-v9 kernel as commit 00d32ed1596f1 on the older 7.0.y tree. I do not have the upstream patchwork URL handy; happy to update the commit message if you have it.

Verification

  • drivers/media/platform/rockchip/rkvdec/rkvdec.o compiles cleanly on 7.1-rc1 with beryllium_rk3588_defconfig after the change applied.
  • Same fix has been running on Rock 5B+ in the previously deployed 7.0-piotr-v9 kernel: Chromium video playback works without green-screen, mpv unaffected.
  • Re-validate end-to-end on a fresh 7.1-rc1 kernel built with this fix once the rest of the config update lands.

The vb2_is_busy() check on the capture queue in rkvdec_s_ctrl()
prevents Chromium from changing the decoded image format mid-stream,
causing green-screen artifacts during video playback. This check is
unique to rkvdec among all V4L2 stateless decoder drivers; removing
it aligns rkvdec with the behavior of other decoders and resolves the
Chromium green-screen issue without regressions on mpv.

Tested on Rock 5B+ with kernel 7.0-piotr-v9 plus this fix:
Chromium playback at 720p/1080p/1440p green-screen-free.

Origin: https://patchwork.kernel.org/project/linux-rockchip/patch/20250904.../
Signed-off-by: Jianfeng Liu <liujianfeng1994@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants