diff --git a/renderdoc/driver/vulkan/vk_pixelhistory.cpp b/renderdoc/driver/vulkan/vk_pixelhistory.cpp index faf164975..379e567a9 100644 --- a/renderdoc/driver/vulkan/vk_pixelhistory.cpp +++ b/renderdoc/driver/vulkan/vk_pixelhistory.cpp @@ -2956,11 +2956,15 @@ VkDescriptorSet VulkanReplay::GetPixelHistoryDescriptor() m_pDriver->vkAllocateDescriptorSets(m_pDriver->GetDev(), &descSetAllocInfo, &descSet); if(vkr != VK_SUCCESS) RDCERR("Failed creating object"); + m_PixelHistory.allocedSets.push_back(descSet); return descSet; } void VulkanReplay::ResetPixelHistoryDescriptorPool() { + for(VkDescriptorSet descset : m_PixelHistory.allocedSets) + GetResourceManager()->ReleaseWrappedResource(descset, true); + m_PixelHistory.allocedSets.clear(); m_pDriver->vkResetDescriptorPool(m_pDriver->GetDev(), m_PixelHistory.MSCopyDescPool, 0); } diff --git a/renderdoc/driver/vulkan/vk_replay.h b/renderdoc/driver/vulkan/vk_replay.h index fc12def21..87d388674 100644 --- a/renderdoc/driver/vulkan/vk_replay.h +++ b/renderdoc/driver/vulkan/vk_replay.h @@ -683,6 +683,8 @@ private: VkPipeline MSCopyPipe = VK_NULL_HANDLE; VkPipeline MSCopyDepthPipe = VK_NULL_HANDLE; VkPipelineLayout MSCopyPipeLayout = VK_NULL_HANDLE; + + rdcarray allocedSets; } m_PixelHistory; struct HistogramMinMax