Rockchip RK3588 and RK3576 video decoders gain mainline Linux support

Collabora has announced mainline Linux support for H.264 and H.265 hardware video decoding on Rockchip RK3588 and RK3576 systems-on-chip. This development ends reliance on vendor-specific BSP kernels for these features. The update includes new API controls and fixes for hardware issues.

The Rockchip RK3588 and RK3576 SoCs, along with variants such as the RK3588S and RK3576J, incorporate VDPU381 and VDPU383 video decoders respectively. Until now, hardware decoding of H.264 (AVC) and H.265 (HEVC) formats required the Rockchip BSP kernel. Collabora's recent work introduces upstream Linux support through a 17-patch series that adds decoder functionality, device tree bindings, and nodes.

Key enhancements include new V4L2 HEVC user-space API controls for handling short-term and long-term Reference Picture Sets (RPS). These controls are essential for the VDPU381 and VDPU383 decoders, unlike some others that can bypass them. Userspace applications must now provide complete RPS tables to the kernel. Support for these controls has been added to GStreamer 1.28, with preliminary integration in FFmpeg, and it facilitates compatibility with Vulkan Video Decode. The Virtual Stateless Decoder (visl) driver has also been updated to trace all control parameters.

A notable fix addresses an IOMMU restore problem: since the IOMMU is embedded in the decoders, resets clear address mappings, but the kernel previously treated them as valid. The patch restores cached mappings post-reset, affecting other Rockchip IP blocks like the RGA 2D graphics accelerator.

For register programming, engineers adopted a C struct-based model over ad-hoc writes to ensure all registers are set in the correct order, preventing inconsistencies even with default values. This approach promotes completeness and prepares for multi-core use.

The patches are expected to merge into Linux 7.1, roughly three months after Linux 6.19's February release. Future efforts by Collabora include multi-core decoding on the RK3588, AV1 support for the RK3576, VP9 for the RK3588, and VDPU346 compatibility for RK356X SoCs. A detailed summary is available on the Collabora website.

Labaran da ke da alaƙa

Developers have released Linux kernel 7.0, featuring improvements for Intel and AMD hardware, enhanced storage handling, and the removal of the experimental label from Rust support. Linus Torvalds announced the update, which is not a long-term support version. The release includes preparations for upcoming CPUs and GPUs, alongside self-healing filesystem capabilities.

An Ruwaito ta hanyar AI

Support for Russian Baikal CPUs is being pulled from the Linux kernel during the 7.1 development cycle. The first changes removed specific driver code merged by Linus Torvalds on April 15. Further patches are queued to eliminate remaining device tree bindings and drivers.

Wannan shafin yana amfani da cookies

Muna amfani da cookies don nazari don inganta shafin mu. Karanta manufar sirri mu don ƙarin bayani.
Ƙi