瀏覽代碼

drm/i915: Only emit a flush if there is an outstanding gpu write

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson 14 年之前
父節點
當前提交
0ac74c6b33
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      drivers/gpu/drm/i915/i915_gem.c

+ 3 - 2
drivers/gpu/drm/i915/i915_gem.c

@@ -2154,8 +2154,9 @@ static int i915_ring_idle(struct drm_device *dev,
 	if (list_empty(&ring->gpu_write_list) && list_empty(&ring->active_list))
 	if (list_empty(&ring->gpu_write_list) && list_empty(&ring->active_list))
 		return 0;
 		return 0;
 
 
-	i915_gem_flush_ring(dev, ring,
-			    I915_GEM_GPU_DOMAINS, I915_GEM_GPU_DOMAINS);
+	if (!list_empty(&ring->gpu_write_list))
+		i915_gem_flush_ring(dev, ring,
+				    I915_GEM_GPU_DOMAINS, I915_GEM_GPU_DOMAINS);
 	return i915_wait_request(dev,
 	return i915_wait_request(dev,
 				 i915_gem_next_request_seqno(dev, ring),
 				 i915_gem_next_request_seqno(dev, ring),
 				 ring);
 				 ring);