summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2020-01-31 16:08:31 -0600
committerDylan Baker <dylan@pnwbakers.com>2020-02-03 08:33:08 -0800
commit6b3c119c508a100c86abe057de8b9d39c62aa281 (patch)
tree58d092cbeca3d7e607000619e5c38bf73556b43c
parent6257f10d038a31e11c4c72780272e0b6dbc0b5e8 (diff)
downloadmesa-6b3c119c508a100c86abe057de8b9d39c62aa281.tar.gz
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 <erik.faye-lund@collabora.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3664> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3664> (cherry picked from commit d7fe9af6202413aa4e6f0f53d89577ed8ea80027)
-rw-r--r--.pick_status.json2
-rw-r--r--src/intel/vulkan/anv_blorp.c8
2 files changed, 9 insertions, 1 deletions
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,