iris: Avoid synchronizing due to the workaround BO
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 20 Nov 2018 06:08:51 +0000 (22:08 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:10 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_batch.c

index 065c05ae808094c76332ff6975d6a96a269bc93a..fa07bf6fc0ce22e1ba502f321bbfaf23407a8886 100644 (file)
@@ -226,6 +226,14 @@ iris_use_pinned_bo(struct iris_batch *batch,
 {
    assert(bo->kflags & EXEC_OBJECT_PINNED);
 
+   /* Never mark the workaround BO with EXEC_OBJECT_WRITE.  We don't care
+    * about the order of any writes to that buffer, and marking it writable
+    * would introduce data dependencies between multiple batches which share
+    * the buffer.
+    */
+   if (bo == batch->screen->workaround_bo)
+      writable = false;
+
    struct drm_i915_gem_exec_object2 *existing_entry =
       find_validation_entry(batch, bo);