From fe9f89cb4720fade4f3ba68daf960c6a089f675f Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 19 Sep 2015 16:43:53 +0200 Subject: [PATCH] Only mark resources as frame referenced when actually frame capturing --- renderdoc/driver/vulkan/vk_core.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index abffb7142..8876dac17 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -1447,19 +1447,19 @@ VkResult WrappedVulkan::vkQueueSubmit( for(auto it = record->bakedCommands->dirtied.begin(); it != record->bakedCommands->dirtied.end(); ++it) GetResourceManager()->MarkDirtyResource(*it); - // for each bound descriptor set, mark it referenced as well as all resources currently bound to it - for(auto it = record->bakedCommands->boundDescSets.begin(); it != record->bakedCommands->boundDescSets.end(); ++it) - { - GetResourceManager()->MarkResourceFrameReferenced(GetResID(*it), eFrameRef_Read); - - VkResourceRecord *setrecord = GetRecord(*it); - - for(auto refit = setrecord->bindFrameRefs.begin(); refit != setrecord->bindFrameRefs.end(); ++refit) - GetResourceManager()->MarkResourceFrameReferenced(refit->first, refit->second.second); - } - if(m_State == WRITING_CAPFRAME) { + // for each bound descriptor set, mark it referenced as well as all resources currently bound to it + for(auto it = record->bakedCommands->boundDescSets.begin(); it != record->bakedCommands->boundDescSets.end(); ++it) + { + GetResourceManager()->MarkResourceFrameReferenced(GetResID(*it), eFrameRef_Read); + + VkResourceRecord *setrecord = GetRecord(*it); + + for(auto refit = setrecord->bindFrameRefs.begin(); refit != setrecord->bindFrameRefs.end(); ++refit) + GetResourceManager()->MarkResourceFrameReferenced(refit->first, refit->second.second); + } + // pull in frame refs from this baked command buffer record->bakedCommands->AddResourceReferences(GetResourceManager());