From 554b96d6195a5a8293b7bc2e8d5f7a426b12d70c Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 10 Sep 2019 14:15:52 +0100 Subject: [PATCH] Process VK_WHOLE_SIZE before marking memory as referenced --- renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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