From 717fbda5367338e1e91abbb1615d5b57655ebb66 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 5 Sep 2023 12:39:42 +0200 Subject: [PATCH] v3dv: be more precise in vkGetImageSubresourceLayout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only return non-zero values for arrayPitch and depthPitch if they make sense for the image type. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/vulkan/v3dv_image.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_image.c b/src/broadcom/vulkan/v3dv_image.c index 57d6cb76fd3..9b6b868b85c 100644 --- a/src/broadcom/vulkan/v3dv_image.c +++ b/src/broadcom/vulkan/v3dv_image.c @@ -565,8 +565,10 @@ v3dv_GetImageSubresourceLayout(VkDevice device, v3dv_layer_offset(image, subresource->mipLevel, subresource->arrayLayer, plane) - image->planes[plane].mem_offset; layout->rowPitch = slice->stride; - layout->depthPitch = image->planes[plane].cube_map_stride; - layout->arrayPitch = image->planes[plane].cube_map_stride; + layout->depthPitch = image->vk.image_type == VK_IMAGE_TYPE_3D ? + image->planes[plane].cube_map_stride : 0; + layout->arrayPitch = image->vk.array_layers > 1 ? + image->planes[plane].cube_map_stride : 0; if (image->vk.image_type != VK_IMAGE_TYPE_3D) { layout->size = slice->size;