drm/i915/gt: Try an extra flush on the Haswell blitter
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Nov 2019 12:09:57 +0000 (12:09 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Nov 2019 14:07:22 +0000 (14:07 +0000)
commitf9228f7658734fe16ef7eec554d187a3d9577be8
treefcfdd614d4fb53393177c9b475df48680cd3190c
parentb5b61cb4b1bf8bd01daab17910c6dab0ded63068
drm/i915/gt: Try an extra flush on the Haswell blitter

On gen7, including Haswell, the MI_FLUSH_DW command is not synchronous
with the command streamer nor is there an option to make it so. To hide
this we add a large delay on the CS so that the breadcrumb should always
be visible before the interrupt. However, that does not seem to be
enough to ensure the memory is actually coherent with the read of the
breadcrumb. The breadcrumb update is a post-sync op... Throw in a
preliminary MI_FLUSH_DW before the breadcrumb update in the hope that
helps.

References: https://bugs.freedesktop.org/show_bug.cgi?id=112147
Testcase: igt/i915_selftest/live_blt
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191111120957.17732-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_ring_submission.c