From 23ffd5df1b0da8c290462cf6487171843ec172b9 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 19 Sep 2015 21:47:17 +0200 Subject: [PATCH] Command buffers should go through ReleaseWrappedResource --- renderdoc/driver/vulkan/vk_core.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 341a33951..2e6244195 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -1074,7 +1074,7 @@ DESTROY_IMPL(VkSwapChainWSI, DestroySwapChainWSI) VkResult WrappedVulkan::vkDestroyCommandBuffer(VkDevice device, VkCmdBuffer obj) { WrappedVkDispRes *wrapped = (WrappedVkDispRes *)GetWrapped(obj); - GetResourceManager()->MarkCleanResource(wrapped->id); + if(wrapped->record) { if(wrapped->record->bakedCommands) @@ -1083,8 +1083,13 @@ VkResult WrappedVulkan::vkDestroyCommandBuffer(VkDevice device, VkCmdBuffer obj) wrapped->record->bakedCommands = NULL; } wrapped->record->Delete(GetResourceManager()); + wrapped->record = NULL; } - return ObjDisp(device)->DestroyCommandBuffer(Unwrap(device), wrapped->real.As()); + VkResult ret = ObjDisp(device)->DestroyCommandBuffer(Unwrap(device), wrapped->real.As()); + + GetResourceManager()->ReleaseWrappedResource(obj); + + return ret; }