Sfoglia il codice sorgente

drm/i915: Move instruction state invalidation from execbuffer to flush

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson 14 anni fa
parent
commit
70eac33e7a
1 ha cambiato i file con 4 aggiunte e 11 eliminazioni
  1. 4 11
      drivers/gpu/drm/i915/intel_ringbuffer.c

+ 4 - 11
drivers/gpu/drm/i915/intel_ringbuffer.c

@@ -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;
 }