From: Kenneth Graunke Date: Thu, 8 Nov 2018 22:51:16 +0000 (-0800) Subject: iris: Add wait fences to properly sync between render/compute X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=db199d9d0770c3c76e6a9487b07c61513204bf8f;p=mesa.git iris: Add wait fences to properly sync between render/compute When flushing a batch due to a data dependency, we need to not only kick off the other batch's work, but stall our execution until it completes. Just wait on last_syncpt after flushing it. --- diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c index 85051186980..cc346ca0029 100644 --- a/src/gallium/drivers/iris/iris_batch.c +++ b/src/gallium/drivers/iris/iris_batch.c @@ -299,6 +299,8 @@ iris_use_pinned_bo(struct iris_batch *batch, if (other_entry && ((other_entry->flags & EXEC_OBJECT_WRITE) || writable)) { iris_batch_flush(batch->other_batches[b]); + iris_batch_add_syncpt(batch, batch->other_batches[b]->last_syncpt, + I915_EXEC_FENCE_WAIT); } }