From cec030a2332a4d9f18d8ef80912330fc7742403e Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Thu, 22 Jun 2023 08:18:35 +0200 Subject: [PATCH] v3dv: fix slice size for miplevels >= 2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We want to store the slice size in pixels not the level size after padding to a power of 2 we use miplevels >= 2. Fixes: 1cb2d2a5ee ('v3dv: store slice dimensions in pixels') Reviewed-by: Alejandro Piñeiro Part-of: --- src/broadcom/vulkan/v3dv_image.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_image.c b/src/broadcom/vulkan/v3dv_image.c index 5474d37..ebbd60e 100644 --- a/src/broadcom/vulkan/v3dv_image.c +++ b/src/broadcom/vulkan/v3dv_image.c @@ -140,18 +140,18 @@ v3d_setup_plane_slices(struct v3dv_image *image, uint8_t plane, for (int32_t i = image->vk.mip_levels - 1; i >= 0; i--) { struct v3d_resource_slice *slice = &image->planes[plane].slices[i]; + slice->width = u_minify(width, i); + slice->height = u_minify(height, i); + uint32_t level_width, level_height, level_depth; if (i < 2) { - level_width = u_minify(width, i); - level_height = u_minify(height, i); + level_width = slice->width; + level_height = slice->height; } else { level_width = u_minify(pot_width, i); level_height = u_minify(pot_height, i); } - slice->width = level_width; - slice->height = level_height; - if (i < 1) level_depth = u_minify(depth, i); else -- 2.7.4