Yes, the UMD does it. Marek On Mon, Sep 18, 2017 at 11:18 AM, Christian König <ckoenig.leichtzumerken at gmail.com> wrote: > 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) > > > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx