From 6b3c119c508a100c86abe057de8b9d39c62aa281 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 31 Jan 2020 16:08:31 -0600 Subject: anv/blorp: Use the correct size for vkCmdCopyBufferToImage Now that we're using an uncompressed format for the buffer, we have to scale down the dimensions we pass into BLORP when doing buffer->image copies. Fixes: dd92179a72 "anv: Canonicalize buffer formats for image/buffer..." Closes: #2452 Reviewed-by: Erik Faye-Lund Reviewed-by: Lionel Landwerlin Tested-by: Marge Bot Part-of: (cherry picked from commit d7fe9af6202413aa4e6f0f53d89577ed8ea80027) --- .pick_status.json | 2 +- src/intel/vulkan/anv_blorp.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 1140a73f145..00a1c305618 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -130,7 +130,7 @@ "description": "anv/blorp: Use the correct size for vkCmdCopyBufferToImage", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "dd92179a72e5263b9db730d92a883e2536aa4474" }, diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index 0ad1f77f87a..877da5435f5 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -517,6 +517,14 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer, bool dst_has_shadow = false; struct blorp_surf dst_shadow_surf; if (&image == dst) { + /* In this case, the source is the buffer and, since blorp takes its + * copy dimensions in terms of the source format, we have to use the + * scaled down version for compressed textures because the source + * format is an RGB format. + */ + extent.width = buffer_extent.width; + extent.height = buffer_extent.height; + anv_cmd_buffer_mark_image_written(cmd_buffer, anv_image, aspect, dst->surf.aux_usage, dst->level, -- cgit v1.2.1