[PATCH v3 2/2] drm/amdgpu: update kernel vcn ring test

Leo Liu leo.liu at amd.com
Tue Jul 11 02:21:41 UTC 2023


On 2023-07-10 16:19, Liu, Leo wrote:
> [AMD Official Use Only - General]
>
> [AMD Official Use Only - General]
>
> -----Original Message-----
> From: Jamadar, Saleemkhan <Saleemkhan.Jamadar at amd.com>
> Sent: Monday, July 10, 2023 12:54 PM
> To: Jamadar, Saleemkhan <Saleemkhan.Jamadar at amd.com>; amd-gfx at lists.freedesktop.org; Liu, Leo <Leo.Liu at amd.com>; Gopalakrishnan, Veerabadhran (Veera) <Veerabadhran.Gopalakrishnan at amd.com>; Sundararaju, Sathishkumar <Sathishkumar.Sundararaju at amd.com>
> Cc: Koenig, Christian <Christian.Koenig at amd.com>; Rao, Srinath <Srinath.rao at amd.com>
> Subject: [PATCH v3 2/2] drm/amdgpu: update kernel vcn ring test
>
> add session context buffer to decoder ring test fro vcn v1 to v3.
>
> v3 - correct the cmd for sesssion ctx buf
> v2 - add the buffer into IB (Leo liu)
>
> Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> index 76e9a2418286..4ee5f933e420 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> @@ -521,6 +521,7 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
>                                     struct dma_fence **fence)
>   {
>          u64 addr = AMDGPU_GPU_PAGE_ALIGN(ib_msg->gpu_addr);
> +       uint64_t session_ctx_buf_gaddr = AMDGPU_GPU_PAGE_ALIGN(ib_msg->gpu_addr + 8192);
>          struct amdgpu_device *adev = ring->adev;
>          struct dma_fence *f = NULL;
>          struct amdgpu_job *job;
> @@ -546,6 +547,19 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
>          }
>          ib->length_dw = 16;
>
> This line above can be removed. With that the patch is:
> Reviewed-by: Leo Liu <leo.liu at amd.com>

I think we should rework the lines above of this line for msg buffer, 
put the session ctx buffer right behind it, and no need fill the nop 
command in between, so make the code cleaner.

Regards,

Leo


> +       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.data0, 0);
> +       ib->ptr[ib->length_dw++] = lower_32_bits(session_ctx_buf_gaddr);
> +       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.data1, 0);
> +       ib->ptr[ib->length_dw++] = upper_32_bits(session_ctx_buf_gaddr);
> +       /* session ctx buffer cmd */
> +       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.cmd, 0xa);
> +       ib->ptr[ib->length_dw++] = 0;
> +       for (i = ib->length_dw; i < 32; i += 2) {
> +               ib->ptr[i] = PACKET0(adev->vcn.internal.nop, 0);
> +               ib->ptr[i+1] = 0;
> +       }
> +       ib->length_dw = 32;
> +
>          r = amdgpu_job_submit_direct(job, ring, &f);
>          if (r)
>                  goto err_free;
> --
> 2.25.1
>


More information about the amd-gfx mailing list