Don't add duplicate derived resources

This commit is contained in:
baldurk
2021-10-06 16:31:43 +01:00
parent fb912b4853
commit 2206f6bd2f
4 changed files with 12 additions and 0 deletions
+3
View File
@@ -2704,6 +2704,9 @@ void WrappedID3D11Device::DerivedResource(ID3D11DeviceChild *parent, ResourceId
{
ResourceId parentId = GetResourceManager()->GetOriginalID(GetIDForDeviceChild(parent));
if(GetReplay()->GetResourceDesc(parentId).derivedResources.contains(child))
return;
GetReplay()->GetResourceDesc(parentId).derivedResources.push_back(child);
GetReplay()->GetResourceDesc(child).parentResources.push_back(parentId);
}
+3
View File
@@ -3914,6 +3914,9 @@ void WrappedID3D12Device::DerivedResource(ID3D12DeviceChild *parent, ResourceId
void WrappedID3D12Device::DerivedResource(ResourceId parent, ResourceId child)
{
if(GetReplay()->GetResourceDesc(parent).derivedResources.contains(child))
return;
GetReplay()->GetResourceDesc(parent).derivedResources.push_back(child);
GetReplay()->GetResourceDesc(child).parentResources.push_back(parent);
}
+3
View File
@@ -3236,6 +3236,9 @@ void WrappedOpenGL::DerivedResource(GLResource parent, ResourceId child)
{
ResourceId parentId = GetResourceManager()->GetOriginalID(GetResourceManager()->GetResID(parent));
if(GetReplay()->GetResourceDesc(parentId).derivedResources.contains(child))
return;
GetReplay()->GetResourceDesc(parentId).derivedResources.push_back(child);
GetReplay()->GetResourceDesc(child).parentResources.push_back(parentId);
}
+3
View File
@@ -2395,6 +2395,9 @@ void WrappedVulkan::DerivedResource(ResourceId parentLive, ResourceId child)
{
ResourceId parentId = GetResourceManager()->GetOriginalID(parentLive);
if(GetReplay()->GetResourceDesc(parentId).derivedResources.contains(child))
return;
GetReplay()->GetResourceDesc(parentId).derivedResources.push_back(child);
GetReplay()->GetResourceDesc(child).parentResources.push_back(parentId);
}