[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