diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2021-10-19 23:13:47 -0700 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2021-10-29 09:10:11 -0700 |
commit | ace310e998f49ea8f9936ab6fa8997674c24f3db (patch) | |
tree | 16c14973399861af51e6dea3a79496a6a92c99b5 | |
parent | e8fd3214dc545d5b6055f9592a91691a40fc757f (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.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/iris/iris_blit.c | 4 |
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), |