summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-05-13 16:54:00 -0700
committerJason Ekstrand <[email protected]>2016-05-17 12:17:22 -0700
commit63dbb2c60aae593717159e53003cf8adac207aad (patch)
treefe34ae412255c1a047dfc07da16727902ca6282d
parentc87429c5f1d31d8a95e1173c432775001f8b38a0 (diff)
anv/copy: Use the linear format from the image for the buffer block size
Because the buffer is exposed to the user, the block size is defined to always exactly be the size of the actual vulkan format. This is the same size (it had better be) as the linaer image format.
-rw-r--r--src/intel/vulkan/anv_meta_copy.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/intel/vulkan/anv_meta_copy.c b/src/intel/vulkan/anv_meta_copy.c
index df2cc2f3930..dbec4f7dd2e 100644
--- a/src/intel/vulkan/anv_meta_copy.c
+++ b/src/intel/vulkan/anv_meta_copy.c
@@ -161,11 +161,14 @@ meta_copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer,
&anv_image_get_surface_for_aspect_mask(image, aspect)->isl;
struct anv_meta_blit2d_surf img_bsurf =
blit_surf_for_image(image, img_isl_surf);
+ enum isl_format buf_format = anv_get_isl_format(image->vk_format, aspect,
+ VK_IMAGE_TILING_LINEAR,
+ NULL);
struct anv_meta_blit2d_surf buf_bsurf = {
.bo = buffer->bo,
.tiling = ISL_TILING_LINEAR,
.base_offset = buffer->offset + pRegions[r].bufferOffset,
- .bs = forward ? image->format->isl_layout->bs : img_bsurf.bs,
+ .bs = isl_format_get_layout(buf_format)->bs,
.pitch = buf_extent_el.width * buf_bsurf.bs,
};