mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
VkResourceRecord::resInfo presence no longer indicates sparse bindings
This VkResourceRecord::resInfo being non-null was previously used as an indicator that VkBuffer or VkImage resources had sparse bindings. Now, `resInfo->IsSparse()` must also be true for the resource to be considered as having sparse bindings. Change-Id: Ia8a93ecb3248a682f71fcf6455d0d583ca129679
This commit is contained in:
committed by
Baldur Karlsson
parent
5556eb3c93
commit
e66acc5429
@@ -924,7 +924,8 @@ void DescriptorSetBindingElement::AddBindRefs(VkResourceRecord *record, FrameRef
|
||||
if(texelBufferView != VK_NULL_HANDLE)
|
||||
{
|
||||
VkResourceRecord *bufView = GetRecord(texelBufferView);
|
||||
record->AddBindFrameRef(bufView->GetResourceID(), eFrameRef_Read, bufView->resInfo != NULL);
|
||||
record->AddBindFrameRef(bufView->GetResourceID(), eFrameRef_Read,
|
||||
bufView->resInfo && bufView->resInfo->IsSparse());
|
||||
if(bufView->baseResource != ResourceId())
|
||||
record->AddBindFrameRef(bufView->baseResource, eFrameRef_Read);
|
||||
if(bufView->baseResourceMem != ResourceId())
|
||||
@@ -945,7 +946,8 @@ void DescriptorSetBindingElement::AddBindRefs(VkResourceRecord *record, FrameRef
|
||||
if(bufferInfo.buffer != VK_NULL_HANDLE)
|
||||
{
|
||||
VkResourceRecord *buf = GetRecord(bufferInfo.buffer);
|
||||
record->AddBindFrameRef(GetResID(bufferInfo.buffer), eFrameRef_Read, buf->resInfo != NULL);
|
||||
record->AddBindFrameRef(GetResID(bufferInfo.buffer), eFrameRef_Read,
|
||||
buf->resInfo && buf->resInfo->IsSparse());
|
||||
if(buf->baseResource != ResourceId())
|
||||
record->AddMemFrameRef(buf->baseResource, buf->memOffset, buf->memSize, ref);
|
||||
}
|
||||
|
||||
@@ -3069,7 +3069,7 @@ void VkResourceRecord::MarkBufferFrameReferenced(VkResourceRecord *buf, VkDevice
|
||||
{
|
||||
size = buf->memSize;
|
||||
}
|
||||
if(buf->resInfo)
|
||||
if(buf->resInfo && buf->resInfo->IsSparse())
|
||||
cmdInfo->sparse.insert(buf->resInfo);
|
||||
if(buf->baseResource != ResourceId())
|
||||
MarkMemoryFrameReferenced(buf->baseResource, buf->memOffset + offset, size, refType);
|
||||
@@ -3179,7 +3179,7 @@ void VkResourceRecord::MarkBufferViewFrameReferenced(VkResourceRecord *bufView,
|
||||
if(bufView->baseResource != ResourceId())
|
||||
MarkResourceFrameReferenced(bufView->baseResource, eFrameRef_Read);
|
||||
|
||||
if(bufView->resInfo)
|
||||
if(bufView->resInfo && bufView->resInfo->IsSparse())
|
||||
cmdInfo->sparse.insert(bufView->resInfo);
|
||||
if(bufView->baseResourceMem != ResourceId())
|
||||
MarkMemoryFrameReferenced(bufView->baseResourceMem, bufView->memOffset, bufView->memSize,
|
||||
|
||||
@@ -1597,7 +1597,7 @@ void WrappedVulkan::vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,
|
||||
record->MarkResourceFrameReferenced(att->baseResource, eFrameRef_ReadBeforeWrite);
|
||||
if(att->baseResourceMem != ResourceId())
|
||||
record->MarkResourceFrameReferenced(att->baseResourceMem, eFrameRef_Read);
|
||||
if(att->resInfo)
|
||||
if(att->resInfo && att->resInfo->IsSparse())
|
||||
record->cmdInfo->sparse.insert(att->resInfo);
|
||||
record->cmdInfo->dirtied.insert(att->baseResource);
|
||||
}
|
||||
|
||||
@@ -2099,8 +2099,9 @@ void WrappedVulkan::vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage
|
||||
record->MarkResourceFrameReferenced(GetResID(image), eFrameRef_PartialWrite);
|
||||
record->MarkResourceFrameReferenced(GetRecord(image)->baseResource, eFrameRef_Read);
|
||||
record->cmdInfo->dirtied.insert(GetResID(image));
|
||||
if(GetRecord(image)->resInfo)
|
||||
record->cmdInfo->sparse.insert(GetRecord(image)->resInfo);
|
||||
VkResourceRecord *imageRecord = GetRecord(image);
|
||||
if(imageRecord->resInfo && imageRecord->resInfo->IsSparse())
|
||||
record->cmdInfo->sparse.insert(imageRecord->resInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2207,8 +2208,9 @@ void WrappedVulkan::vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, V
|
||||
record->MarkResourceFrameReferenced(GetResID(image), eFrameRef_PartialWrite);
|
||||
record->MarkResourceFrameReferenced(GetRecord(image)->baseResource, eFrameRef_Read);
|
||||
record->cmdInfo->dirtied.insert(GetResID(image));
|
||||
if(GetRecord(image)->resInfo)
|
||||
record->cmdInfo->sparse.insert(GetRecord(image)->resInfo);
|
||||
VkResourceRecord *imageRecord = GetRecord(image);
|
||||
if(imageRecord->resInfo && imageRecord->resInfo->IsSparse())
|
||||
record->cmdInfo->sparse.insert(imageRecord->resInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user