From e43fc003e0ed9ad5ba6e19a1132457233edba6eb Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Thu, 23 Apr 2020 12:10:07 -0400 Subject: [PATCH] turnip: divide cube map depth by 6 This matches the GL driver and fixes these tests: dEQP-VK.glsl.texture_functions.query.texturesize.samplercubearray* Signed-off-by: Jonathan Marek Part-of: --- src/freedreno/vulkan/tu_image.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_image.c b/src/freedreno/vulkan/tu_image.c index c4ac2f8c830..280263b0f36 100644 --- a/src/freedreno/vulkan/tu_image.c +++ b/src/freedreno/vulkan/tu_image.c @@ -274,8 +274,18 @@ tu_image_view_init(struct tu_image_view *iview, uint32_t width = u_minify(image->extent.width, range->baseMipLevel); uint32_t height = u_minify(image->extent.height, range->baseMipLevel); - uint32_t depth = pCreateInfo->viewType == VK_IMAGE_VIEW_TYPE_3D ? - u_minify(image->extent.depth, range->baseMipLevel) : tu_get_layerCount(image, range); + uint32_t depth = tu_get_layerCount(image, range); + switch (pCreateInfo->viewType) { + case VK_IMAGE_VIEW_TYPE_3D: + depth = u_minify(image->extent.depth, range->baseMipLevel); + break; + case VK_IMAGE_VIEW_TYPE_CUBE: + case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY: + depth /= 6; + break; + default: + break; + } uint64_t base_addr = image->bo->iova + image->bo_offset + fdl_surface_offset(layout, range->baseMipLevel, range->baseArrayLayer); -- 2.30.2