From db199d9d0770c3c76e6a9487b07c61513204bf8f Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 8 Nov 2018 14:51:16 -0800 Subject: [PATCH] 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. --- src/gallium/drivers/iris/iris_batch.c | 2 ++ 1 file changed, 2 insertions(+) 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); } } -- 2.30.2