From daf498f704b94640d1d27d128b8782969a20d791 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 12 Jan 2022 11:24:15 +0000 Subject: [PATCH] When forcing buffers to be referenced for BDA purposes, use read ref * Buffers are always treated as 'read' even if they're written because only sparse buffers have initial states and become dirty. The memory behind the buffer is instead the thing that is treated as written. --- renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 4ed6b369e..03f925275 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -1379,8 +1379,7 @@ VkResult WrappedVulkan::vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkD { // in case we're currently capturing, immediately consider the buffer and backing memory as // read-before-write referenced - GetResourceManager()->MarkResourceFrameReferenced(record->GetResourceID(), - eFrameRef_ReadBeforeWrite); + GetResourceManager()->MarkResourceFrameReferenced(record->GetResourceID(), eFrameRef_Read); GetResourceManager()->MarkMemoryFrameReferenced(id, memoryOffset, record->memSize, eFrameRef_ReadBeforeWrite); @@ -2773,8 +2772,7 @@ VkResult WrappedVulkan::vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCo { // in case we're currently capturing, immediately consider the buffer and backing memory as // read-before-write referenced - GetResourceManager()->MarkResourceFrameReferenced(bufrecord->GetResourceID(), - eFrameRef_ReadBeforeWrite); + GetResourceManager()->MarkResourceFrameReferenced(bufrecord->GetResourceID(), eFrameRef_Read); GetResourceManager()->MarkMemoryFrameReferenced( GetResID(pBindInfos[i].memory), pBindInfos[i].memoryOffset, bufrecord->memSize, eFrameRef_ReadBeforeWrite);