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.
This commit is contained in:
baldurk
2022-01-12 11:24:22 +00:00
parent 4d26628a3c
commit daf498f704
@@ -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);