From 3eccdfcbe0f3d51a440278f7bb8a968a06c2fe8d Mon Sep 17 00:00:00 2001 From: Aliya Pazylbekova Date: Thu, 25 Jul 2019 14:34:42 -0400 Subject: [PATCH] Fix image resource tracking Currently if image range uses VK_REMAINING_MIP_LEVELS it gets converted to MipMaxValue (63). https://github.com/baldurk/renderdoc/blob/e17631a4cc7e036b12ca5dbe0d37a8bd15b4f8d9/renderdoc/driver/vulkan/vk_resources.h#L1625 Which is then written to ImageRange and used when updating descriptor sets. The code downstream checks for VK_REMAINING_MIP_LEVELS but because the value is 63, it is not adjusted to the actual value. Also affects layer count. --- renderdoc/driver/vulkan/vk_resources.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_resources.h b/renderdoc/driver/vulkan/vk_resources.h index 7b915920b..850e37119 100644 --- a/renderdoc/driver/vulkan/vk_resources.h +++ b/renderdoc/driver/vulkan/vk_resources.h @@ -1480,12 +1480,7 @@ public: p.first++; } - ImageRange imgRange; - imgRange.aspectMask = view->viewRange.aspectMask; - imgRange.baseMipLevel = view->viewRange.baseMipLevel; - imgRange.levelCount = view->viewRange.levelCount; - imgRange.baseArrayLayer = view->viewRange.baseArrayLayer; - imgRange.layerCount = view->viewRange.layerCount; + ImageRange imgRange = ImageRange((VkImageSubresourceRange)view->viewRange); imgRange.viewType = view->viewRange.viewType(); FrameRefType maxRef = MarkImageReferenced(descInfo->bindImgRefs, view->baseResource,