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)