[Mesa-dev] [PATCH 11/23] anv/copy: Use the linear format from the image for the buffer block size

Jason Ekstrand jason at jlekstrand.net
Mon May 16 19:08:16 UTC 2016


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.
---
 src/intel/vulkan/anv_meta_copy.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_meta_copy.c b/src/intel/vulkan/anv_meta_copy.c
index df2cc2f..dbec4f7 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,
       };
 
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list