diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 9947f25f1..d74d7c691 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -782,6 +782,16 @@ VkResult WrappedVulkan::vkResetCommandPool(VkDevice device, VkCommandPool cmdPoo if(Atomic::CmpExch32(&m_ReuseEnabled, 1, 1) == 1) GetRecord(cmdPool)->cmdPoolInfo->pool.Reset(); + { + VkResourceRecord *poolRecord = GetRecord(cmdPool); + poolRecord->LockChunks(); + for(auto it = poolRecord->pooledChildren.begin(); it != poolRecord->pooledChildren.end(); ++it) + { + (*it)->cmdInfo->alloc.Reset(); + } + poolRecord->UnlockChunks(); + } + return ObjDisp(device)->ResetCommandPool(Unwrap(device), Unwrap(cmdPool), flags); }