drm/i915: PIPE_CONTROL TLB invalidate requires CS stall
authorJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 25 Oct 2012 19:15:47 +0000 (12:15 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 11 Nov 2012 22:51:37 +0000 (23:51 +0100)
"If ENABLED, PIPE_CONTROL command will flush the in flight data  written
out by render engine to Global Observation point on flush done. Also
Requires stall bit ([20] of DW1) set."

So set the stall bit to ensure proper invalidation.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Antti Koskipää <antti.koskipaa@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_ringbuffer.c

index 1591955044c8a766ca3946570e766f8dc90e804d..f7617a4e005f419487365a1a78be3e9a88845805 100644 (file)
@@ -245,7 +245,7 @@ gen6_render_ring_flush(struct intel_ring_buffer *ring,
                /*
                 * TLB invalidate requires a post-sync write.
                 */
-               flags |= PIPE_CONTROL_QW_WRITE;
+               flags |= PIPE_CONTROL_QW_WRITE | PIPE_CONTROL_CS_STALL;
        }
 
        ret = intel_ring_begin(ring, 4);