summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2021-10-19 23:13:47 -0700
committerDylan Baker <dylan.c.baker@intel.com>2021-10-29 09:10:11 -0700
commitace310e998f49ea8f9936ab6fa8997674c24f3db (patch)
tree16c14973399861af51e6dea3a79496a6a92c99b5
parente8fd3214dc545d5b6055f9592a91691a40fc757f (diff)
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@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13480> (cherry picked from commit d8cb76211c5d264d705dbd3c02b5fc61637d5a56)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/iris/iris_blit.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index b89ca1fdf59..40bfc7c3600 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -616,7 +616,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 ad7e6e2fa42..8f25f24eabe 100644
--- a/src/gallium/drivers/iris/iris_blit.c
+++ b/src/gallium/drivers/iris/iris_blit.c
@@ -650,10 +650,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),