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),