diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 5eacd44c2..c5a6ee419 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -812,8 +812,14 @@ VkResult WrappedVulkan::vkFlushMappedMemoryRanges(VkDevice device, uint32_t memR if(capframe) { - GetResourceManager()->MarkMemoryFrameReferenced(GetResID(pMemRanges[i].memory), - pMemRanges[i].offset, pMemRanges[i].size, + VkDeviceSize offs = pMemRanges[i].offset; + VkDeviceSize size = pMemRanges[i].size; + + // map VK_WHOLE_SIZE into a specific size + if(size == VK_WHOLE_SIZE) + size = state->mapOffset + state->mapSize - offs; + + GetResourceManager()->MarkMemoryFrameReferenced(GetResID(pMemRanges[i].memory), offs, size, eFrameRef_CompleteWrite); } else