Clean background frame references every 20 submits

* This means the background references array won't build up even for programs
  that don't present.
This commit is contained in:
baldurk
2020-08-12 14:47:59 +01:00
parent bf8390d313
commit 466debe9a4
2 changed files with 8 additions and 0 deletions
+2
View File
@@ -750,6 +750,8 @@ private:
rdcarray<VkResourceRecord *> m_ForcedReferences;
Threading::CriticalSection m_ForcedReferencesLock;
volatile int64_t m_QueueCounter = 0;
rdcarray<VkResourceRecord *> GetForcedReferences()
{
rdcarray<VkResourceRecord *> ret;
@@ -975,6 +975,12 @@ VkResult WrappedVulkan::vkQueueSubmit(VkQueue queue, uint32_t submitCount,
sub->bakedCommands->AddResourceReferences(GetResourceManager());
}
}
// every 20 submits clean background references, in case the application isn't presenting.
if((Atomic::Inc64(&m_QueueCounter) % 20) == 0)
{
GetResourceManager()->CleanBackgroundFrameReferences();
}
}
if(capframe)