drm/i915: Move instruction state invalidation from execbuffer to flush
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 30 Nov 2010 14:07:47 +0000 (14:07 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 30 Nov 2010 14:08:43 +0000 (14:08 +0000)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_ringbuffer.c

index b12578558268702a94bc445f8747d25e5b3f9bd9..7fc55a80be20d0044aa67de5fde0344eb3b8f822 100644 (file)
@@ -109,6 +109,10 @@ render_ring_flush(struct intel_ring_buffer *ring,
                if (invalidate_domains & I915_GEM_DOMAIN_INSTRUCTION)
                        cmd |= MI_EXE_FLUSH;
 
+               if (invalidate_domains & I915_GEM_DOMAIN_COMMAND &&
+                   (IS_G4X(dev) || IS_GEN5(dev)))
+                       cmd |= MI_INVALIDATE_ISP;
+
 #if WATCH_EXEC
                DRM_INFO("%s: queue flush %08x to ring\n", __func__, cmd);
 #endif
@@ -583,17 +587,6 @@ render_ring_dispatch_execbuffer(struct intel_ring_buffer *ring,
                intel_ring_advance(ring);
        }
 
-       if (IS_G4X(dev) || IS_GEN5(dev)) {
-               if (intel_ring_begin(ring, 2) == 0) {
-                       intel_ring_emit(ring, MI_FLUSH |
-                                       MI_NO_WRITE_FLUSH |
-                                       MI_INVALIDATE_ISP );
-                       intel_ring_emit(ring, MI_NOOP);
-                       intel_ring_advance(ring);
-               }
-       }
-       /* XXX breadcrumb */
-
        return 0;
 }