[PATCH 11/18] drm/amdgpu:add vgt_flush for gfx9

Christian König ckoenig.leichtzumerken at gmail.com
Mon Sep 18 09:18:04 UTC 2017


Am 18.09.2017 um 08:11 schrieb Monk Liu:
> Change-Id: I584572cfb9145ee1b8d11d69ba2989bd6acfd706
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>

I could be wrong, but wasn't the consensus that this should be done by 
the UMD?

Marek, please comment.

Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index 3306667..f201510 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -3499,6 +3499,17 @@ static void gfx_v9_0_ring_set_wptr_gfx(struct amdgpu_ring *ring)
>   	}
>   }
>   
> +static void gfx_v9_0_ring_emit_vgt_flush(struct amdgpu_ring *ring)
> +{
> +	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE, 0));
> +	amdgpu_ring_write(ring, EVENT_TYPE(VS_PARTIAL_FLUSH) |
> +		EVENT_INDEX(4));
> +
> +	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE, 0));
> +	amdgpu_ring_write(ring, EVENT_TYPE(VGT_FLUSH) |
> +		EVENT_INDEX(0));
> +}
> +
>   static void gfx_v9_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
>   {
>   	u32 ref_and_mask, reg_mem_engine;
> @@ -3530,6 +3541,9 @@ static void gfx_v9_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
>   			      nbio_hf_reg->hdp_flush_req_offset,
>   			      nbio_hf_reg->hdp_flush_done_offset,
>   			      ref_and_mask, ref_and_mask, 0x20);
> +
> +	if (ring->funcs->type == AMDGPU_RING_TYPE_GFX)
> +		gfx_v9_0_ring_emit_vgt_flush(ring);
>   }
>   
>   static void gfx_v9_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)




More information about the amd-gfx mailing list