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.
This commit is contained in:
Jason Ekstrand 2016-05-13 16:54:00 -07:00
parent c87429c5f1
commit 63dbb2c60a
1 changed files with 4 additions and 1 deletions

View File

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