On 11/14/25 11:07, Yifan Zha wrote:
> [Why]
> Accoreding to CP updated to RS64 on gfx11,
> WRITE_DATA with PREEMPTION_META_MEMORY(dst_sel=8) is illegal for CP FW.
> That packet is used for MCBP on F32 based system.
> So it would lead to incorrect GRBM write and FW is not handling that
> extra case correctly.
>
> [How]
> With gfx11 rs64 enabled, skip emit da meta data.
>
> Signed-off-by: Yifan Zha <[email protected]>
> ---
> drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> index 02d7cfae22bd..e4d525bf9d0c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> @@ -5874,7 +5874,7 @@ static void gfx_v11_0_ring_emit_ib_gfx(struct
> amdgpu_ring *ring,
> if (flags & AMDGPU_IB_PREEMPTED)
> control |= INDIRECT_BUFFER_PRE_RESUME(1);
>
> - if (vmid)
> + if (vmid && !ring->adev->gfx.rs64_enable)
> gfx_v11_0_ring_emit_de_meta(ring,
> (!amdgpu_sriov_vf(ring->adev) && flags &
> AMDGPU_IB_PREEMPTED) ? true : false);
While at it please also remove this "? true : false". That is usually extremely
frowned upon.
Regards,
Christian.
> }