Re: [PATCH v4 0/6] media: qcom: iris: add support for decoding 10bit formats

From: Neil Armstrong

Date: Tue May 26 2026 - 08:39:55 EST


On 5/26/26 09:53, Vikash Garodia wrote:

On 5/21/2026 2:54 PM, Neil Armstrong wrote:
This adds the plumbing to support decoding HEVC, VP9 and AV1
streams into 10bit pixel formats, linear and compressed.

This has only been tested on SM8550 & SM8650 with HEVC, and was
inspired by Venus, DRM MSM and the downstream vidc driver for the
buffer calculations and HFI messages.

Gstreamer support for QC08 and QC10 need the MR at [1] to be applied,
but NV12 and P010 works out of the box with mainline Gstreamer.

Fluster HEVC results on SM8650 using Gstreamer:

./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2-Gst1.0 - 141/147
The failing test case:
- Pixel Format mismatch
  - TSUNEQBD_A_MAIN10_Technicolor_2 - Gstreamer waits NV12 but decoder returns P010
- Unsupported resolution
  - PICSIZE_A_Bossen_1 - resolution is higher than max supported
  - PICSIZE_B_Bossen_1 - resolution is higher than max supported
  - WPP_D_ericsson_MAIN_2 - resolution is lower than min supported
  - WPP_D_ericsson_MAIN10_2 - resolution is lower than min supported
- CRC mismatch
  - RAP_A_docomo_6


<snip>



Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0

[1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8195

Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
---
Changes in v4:
- Picked review tags
- Use u32 instead of __u32
- Explicit DPB
- Drop NULL and use >>1 in q10c buffer calc
- Drop selicolon after switch statementr
- Correctly align HFI_PROP_UBWC_STRIDE_SCANLINE entry

Its not very clear. Does this fix the issue reported here [1] ?

https://lore.kernel.org/linux-media/fb377b11-c54c-4bd9-bf12-cf19d6484c66@xxxxxxxxxxxxxxxx/

I wasn't able to reproduce the issue, and the reporter never answered my questions so far.

Neil


- Rebase on media next tree after the file split
- Link to v3: https://patch.msgid.link/20260511-topic-sm8x50-iris-10bit-decoding-v3-0-7fc049b93042@xxxxxxxxxx

Changes in v3:
- Added review tag on patch 1
- Limited stride command to AV1 decoding only
- Link to v2: https://patch.msgid.link/20260417-topic-sm8x50-iris-10bit-decoding-v2-0-c987b65a31d5@xxxxxxxxxx

Changes in v2:
- Fixed bug breaking 8bit decoding
- Dropped filtering on G_FMT while waiting for soure change
- Dropped format filtering on ENUMFMT
- Switched ALIGN(x, 192) to roundup(x, 192) because ALIGN works only with Power Of Two numbers
- Cleaned and refactors the width/height/stride calculations
- Cleaned and redesigned the buffer calculations functions with proper comments and var names
- Passed fluster and v4l2-compliance to check for non regression
- Tested on SM8550
- Added missing V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 with made gstreamer fail decoding
- Link to v1: https://patch.msgid.link/20260408-topic-sm8x50-iris-10bit-decoding-v1-0-428c1ec2e3f3@xxxxxxxxxx

---
Neil Armstrong (6):
       media: qcom: iris: add helpers for 8bit and 10bit formats
       media: qcom: iris: add QC10C & P010 buffer size calculations
       media: qcom: iris: gen2: add support for 10bit decoding
       media: qcom: iris: vdec: update size and stride calculations for 10bit formats
       media: qcom: iris: vdec: update find_format to handle 8bit and 10bit formats
       media: qcom: iris: vdec: allow GEN2 decoding into 10bit format

  drivers/media/platform/qcom/iris/iris_buffer.c     | 195 ++++++++++++++++++++-
  drivers/media/platform/qcom/iris/iris_hfi_gen2.c   |   8 +-
  .../platform/qcom/iris/iris_hfi_gen2_command.c     |  75 +++++++-
  .../platform/qcom/iris/iris_hfi_gen2_defines.h     |   1 +
  .../platform/qcom/iris/iris_hfi_gen2_response.c    |  37 +++-
  drivers/media/platform/qcom/iris/iris_instance.h   |   2 +
  .../platform/qcom/iris/iris_platform_common.h      |   1 +
  drivers/media/platform/qcom/iris/iris_utils.c      |  16 +-
  drivers/media/platform/qcom/iris/iris_utils.h      |   2 +
  drivers/media/platform/qcom/iris/iris_vdec.c       |  42 ++++-
  10 files changed, 364 insertions(+), 15 deletions(-)
---
base-commit: 86693e86019a7466be961fd4f45d407cc0b0ba0a
change-id: 20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c

Best regards,
--
Neil Armstrong <neil.armstrong@xxxxxxxxxx>


Regards,
Vikash