aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_execbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_execbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index a8bb62ca8756..87a3227e5179 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -786,7 +786,7 @@ i915_gem_execbuffer_move_to_active(struct list_head *objects,
786 obj->dirty = 1; 786 obj->dirty = 1;
787 obj->last_write_seqno = intel_ring_get_seqno(ring); 787 obj->last_write_seqno = intel_ring_get_seqno(ring);
788 if (obj->pin_count) /* check for potential scanout */ 788 if (obj->pin_count) /* check for potential scanout */
789 intel_mark_fb_busy(obj); 789 intel_mark_fb_busy(obj, ring);
790 } 790 }
791 791
792 trace_i915_gem_object_change_domain(obj, old_read, old_write); 792 trace_i915_gem_object_change_domain(obj, old_read, old_write);
@@ -796,13 +796,14 @@ i915_gem_execbuffer_move_to_active(struct list_head *objects,
796static void 796static void
797i915_gem_execbuffer_retire_commands(struct drm_device *dev, 797i915_gem_execbuffer_retire_commands(struct drm_device *dev,
798 struct drm_file *file, 798 struct drm_file *file,
799 struct intel_ring_buffer *ring) 799 struct intel_ring_buffer *ring,
800 struct drm_i915_gem_object *obj)
800{ 801{
801 /* Unconditionally force add_request to emit a full flush. */ 802 /* Unconditionally force add_request to emit a full flush. */
802 ring->gpu_caches_dirty = true; 803 ring->gpu_caches_dirty = true;
803 804
804 /* Add a breadcrumb for the completion of the batch buffer */ 805 /* Add a breadcrumb for the completion of the batch buffer */
805 (void)i915_add_request(ring, file, NULL); 806 (void)__i915_add_request(ring, file, obj, NULL);
806} 807}
807 808
808static int 809static int
@@ -1083,7 +1084,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
1083 trace_i915_gem_ring_dispatch(ring, intel_ring_get_seqno(ring), flags); 1084 trace_i915_gem_ring_dispatch(ring, intel_ring_get_seqno(ring), flags);
1084 1085
1085 i915_gem_execbuffer_move_to_active(&eb->objects, ring); 1086 i915_gem_execbuffer_move_to_active(&eb->objects, ring);
1086 i915_gem_execbuffer_retire_commands(dev, file, ring); 1087 i915_gem_execbuffer_retire_commands(dev, file, ring, batch_obj);
1087 1088
1088err: 1089err:
1089 eb_destroy(eb); 1090 eb_destroy(eb);