Qualcomm Iris video decoder & encoder gets Linux V4L2 driver

Qualcomm engineer Vikash Garodia has just pushed a commit to add “Qualcomm Iris V4L2 encoder/decoder driver” to mainline Linux enabling support for H.264, H.265, and VP9 decoding, H.264 and H.265 encoding, as well as M2M and STREAMING capabilities.

The Adreno GPUs found in Qualcomm SoC have been supported by the open-source Freedreno driver for several years, but this was not the case with the IP block taking care of hardware video encoding and decoding. The latest patchset addresses this issue for “Qualcomm’s new video acceleration hardware architecture”, meaning it might not work for older Qualcomm processors.

Qualcomm Iris V4L2 video encoder decoder driver

The list of features implemented in the Iris V4L2 encoder/decoder driver:

  • Centralized resource and memory management.
  • Centralized management of core and instance states.
  • Defines platform-specific capabilities and features providing a single point of control to enable/disable a given feature depending on specific platform capabilities.
  • Handles hardware interdependent configurations.
  • Handles multiple complex video scenarios involving state transitions: DRC, Drain, Seek, back-to-back DRC, DRC during Drain sequence, DRC during Seek sequence.
  • Introduces a flexible way for the driver to subscribe for any property with hardware.
  • Introduces performance (clock and bus) model based on new hardware architecture.
  • Introduces multi-thread safe design to handle communication between client and hardware.
  • Adapts encoder quality improvements available in new hardware architecture.
  • Implements asynchronous communication with hardware to achieve better experience in low latency use cases.
  • Supports multi-stage hardware architecture for encode/decode.
  • Output and capture planes are controlled independently, providing a way to reconfigure individual planes.
  • Hardware packetization layer supports synchronization between configuration packet and data packet.
  • Introduces the flexibility to receive a hardware response for a given command packet.
  • Native hardware support of LAST flag which is mandatory to align with port reconfiguration and DRAIN sequence as per V4L guidelines.
  • Native hardware support for drain sequence.

It’s very hard to find information about the new Iris VPU architecture, so we don’t know which Qualcomm processors rely on the new architecture, except for the sm8550 (Snapdragon 8 Gen 2) that shows up in the patch set. In some ways, Qualcomm is way worse than Allwinner as I’ve never seen a Qualcomm datasheet or technical reference manual myself. That’s because everything is under NDA, but at least they pay people to work on the software side, and software support is usually much better than for companies like Allwinner.

You’ll find a few more details and the code on the Linux Kernel Mailing List.

Via Phoronix and thanks to TLS for the tip.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
2 Comments
oldest
newest
Paul Kocialkowski
9 months ago

Note that this is a V4L2 stateful driver, which relies on a proprietary firmware to do the heavy lifting of actually configuring the hardware registers and managing bitstream parsing, generation and rate-control. Would be great to see Qualcomm provide a free firmware as well, but that’s quite unlikely to ever happen.

itchy n scratchy
itchy n scratchy
9 months ago

If you hear the openwrt devs complaining about Qualcomm i doubt their SW is much better than allwinner 😛

Khadas VIM4 SBC