Re: [PATCH 1/1] venus : Fix for H265 decoding failure.

From: Nathan Hebert
Date: Thu Dec 01 2022 - 19:12:34 EST


On Tue, Nov 15, 2022 at 4:10 AM <quic_vboma@xxxxxxxxxxx> wrote:
>
> From: Viswanath Boma <quic_vboma@xxxxxxxxxxx>
>
> Aligned the mismatch of persist1 and scratch1 buffer calculation,
> as per the firmware requirements .
>
> Signed-off-by: Vikash Garodia <vgarodia@xxxxxxxxxxxxxxxx>
> Signed-off-by: Viswanath Boma <quic_vboma@xxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/venus/hfi_plat_bufs_v6.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/venus/hfi_plat_bufs_v6.c b/drivers/media/platform/qcom/venus/hfi_plat_bufs_v6.c
> index ea25c451222b..a9be31ec6927 100644
> --- a/drivers/media/platform/qcom/venus/hfi_plat_bufs_v6.c
> +++ b/drivers/media/platform/qcom/venus/hfi_plat_bufs_v6.c
> @@ -93,7 +93,7 @@
> #define LCU_MIN_SIZE_PELS 16
> #define SIZE_SEI_USERDATA 4096
>
> -#define H265D_MAX_SLICE 600
> +#define H265D_MAX_SLICE 3600
> #define SIZE_H265D_HW_PIC_T SIZE_H264D_HW_PIC_T
> #define SIZE_H265D_BSE_CMD_PER_BUF (16 * sizeof(u32))
> #define SIZE_H265D_VPP_CMD_PER_BUF 256
> @@ -1021,7 +1021,7 @@ static u32 h264d_persist1_size(void)
> static u32 h265d_persist1_size(void)
> {
> return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + H265_NUM_TILE
> - * sizeof(u32)), HFI_DMA_ALIGNMENT);
> + * sizeof(u32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA), HFI_DMA_ALIGNMENT);
> }
>
> static u32 vp8d_persist1_size(void)
> --
> 2.17.1
>
Hi Viswanath. I tested this patch on ChromiumOS's downstream
5.15-based fork. Using ITU-T HEVC test vectors [0] I am seeing
firmware errors "qcom-venus-decoder aa00000.video-codec:video-decoder:
VenusMed : event not sufficient resources". Does this change fix HEVC
decoding for you?

[0]: https://www.itu.int/wftp3/av-arch/jctvc-site/bitstream_exchange/draft_conformance/HEVC_v1/

Best regards,
Nathan Hebert