]> git.hungrycats.org Git - linux/commit
drm/i915: Flush pipecontrol post-sync writes
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 21 Aug 2015 15:08:41 +0000 (16:08 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Nov 2015 22:37:33 +0000 (14:37 -0800)
commitaf5ae108419917ebaeab64e59e1ae5db319a87c5
tree9ffe4400abc0aa57fa95ebe0c12cc5dd0df13905
parentbae606df3068a63d785a05542622a43156bdec5d
drm/i915: Flush pipecontrol post-sync writes

commit 40a24488f5250d63341e74b9994159afc4589606 upstream.

In order to flush the results from in-batch pipecontrol writes (used for
example in glQuery) before declaring the batch complete (and so declaring
the query results coherent), we need to set the FlushEnable bit in our
flushing pipecontrol. The FlushEnable bit "waits until all previous
writes of immediate data from post-sync circles are complete before
executing the next command".

I get GPU hangs on byt without flushing these writes (running ue4).
piglit has examples where the flush is required for correct rendering.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_ringbuffer.c