Mesa (main): iris: Replace unconditional QBO flush with iris_dirty_for_history().

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 4 17:53:22 UTC 2022


Module: Mesa
Branch: main
Commit: 03cf7888916f3348137bf0e1368f3a6026282680
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=03cf7888916f3348137bf0e1368f3a6026282680

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Feb  6 20:58:40 2020 -0800

iris: Replace unconditional QBO flush with iris_dirty_for_history().

We can now use the same cache tracking mechanism for synchronizing QBO
writes instead of the unconditional PIPE_CONTROL performed currently,
which is unable to invalidate any incoherent caches which may contain
stale data for the buffer object.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15738>

---

 src/gallium/drivers/iris/iris_query.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_query.c b/src/gallium/drivers/iris/iris_query.c
index bb7ad66f887..49201d560da 100644
--- a/src/gallium/drivers/iris/iris_query.c
+++ b/src/gallium/drivers/iris/iris_query.c
@@ -699,13 +699,8 @@ iris_get_query_result_resource(struct pipe_context *ctx,
          batch->screen->vtbl.store_data_imm64(batch, dst_bo, offset, q->result);
       }
 
-      /* Make sure the result lands before they use bind the QBO elsewhere
-       * and use the result.
-       */
-      // XXX: Why?  i965 doesn't do this.
-      iris_emit_pipe_control_flush(batch,
-                                   "query: unknown QBO flushing hack",
-                                   PIPE_CONTROL_CS_STALL);
+      /* Make sure QBO is flushed before its result is used elsewhere. */
+      iris_dirty_for_history(ice, res);
       return;
    }
 



More information about the mesa-commit mailing list