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 d7fe9af620)
This commit is contained in:
Jason Ekstrand 2020-01-31 16:08:31 -06:00 committed by Dylan Baker
parent 6257f10d03
commit 6b3c119c50
2 changed files with 9 additions and 1 deletions

View file

@ -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"
},

View file

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