Mesa (staging/21.3): iris: Fix MOCS for buffer copies

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 1 19:36:40 UTC 2021


Module: Mesa
Branch: staging/21.3
Commit: ccd8f13a1789c88a8449ca5ba2d8705aa449854c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ccd8f13a1789c88a8449ca5ba2d8705aa449854c

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Oct 19 23:13:47 2021 -0700

iris: Fix MOCS for buffer copies

We were passing a MOCS of 0, which is uncached.  Yikes.

Fixes: c5b22441f1c ("iris: Fix buffer -> buffer copy_region")

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13480>
(cherry picked from commit d8cb76211c5d264d705dbd3c02b5fc61637d5a56)

---

 .pick_status.json                    | 2 +-
 src/gallium/drivers/iris/iris_blit.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 25185f4b3ae..abe63c5c592 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -904,7 +904,7 @@
         "description": "iris: Fix MOCS for buffer copies",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "c5b22441f1c3a77027af4306f09ea6d1f20d00ab"
     },
diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c
index 6f789ad3777..a755f9427eb 100644
--- a/src/gallium/drivers/iris/iris_blit.c
+++ b/src/gallium/drivers/iris/iris_blit.c
@@ -642,10 +642,14 @@ iris_copy_region(struct blorp_context *blorp,
    if (dst->target == PIPE_BUFFER && src->target == PIPE_BUFFER) {
       struct blorp_address src_addr = {
          .buffer = iris_resource_bo(src), .offset = src_box->x,
+         .mocs = iris_mocs(src_res->bo, &screen->isl_dev,
+                           ISL_SURF_USAGE_RENDER_TARGET_BIT),
       };
       struct blorp_address dst_addr = {
          .buffer = iris_resource_bo(dst), .offset = dstx,
          .reloc_flags = EXEC_OBJECT_WRITE,
+         .mocs = iris_mocs(dst_res->bo, &screen->isl_dev,
+                           ISL_SURF_USAGE_TEXTURE_BIT),
       };
 
       iris_emit_buffer_barrier_for(batch, iris_resource_bo(src),



More information about the mesa-commit mailing list