From 4419d879081dc56f1f42f34cdd57520055566b87 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 6 Mar 2021 13:17:56 +0000 Subject: [PATCH] Add missing memory dirty to vkBindBufferMemory2 --- renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 468a01e62..ee68516b1 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -2642,6 +2642,13 @@ VkResult WrappedVulkan::vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCo GetResID(pBindInfos[i].memory), pBindInfos[i].memoryOffset, bufrecord->memSize, eFrameRef_ReadBeforeWrite); } + + // the memory is immediately dirty because we don't use dirty tracking, it's too expensive to + // follow all frame refs in the background and it's pointless because memory almost always + // immediately becomes dirty anyway. The one case we might care about non-dirty memory is + // memory that has been allocated but not used, but that will be skipped or postponed as + // appropriate. + GetResourceManager()->MarkDirtyResource(GetResID(pBindInfos[i].memory)); } }