diff --git a/src/vkcv/DescriptorManager.cpp b/src/vkcv/DescriptorManager.cpp index 78c9c0a75e40ff7c4dc7b542c61ca4bedfef5d69..e7ae9ea2bda1164f5425e4324b3ff3969ff45847 100644 --- a/src/vkcv/DescriptorManager.cpp +++ b/src/vkcv/DescriptorManager.cpp @@ -32,8 +32,13 @@ namespace vkcv for (uint64_t id = 0; id < m_DescriptorSets.size(); id++) { destroyDescriptorSetById(id); } + + for (uint64_t id = 0; id < m_DescriptorSetLayouts.size(); id++) { + destroyDescriptorSetLayoutById(id); + } m_DescriptorSets.clear(); + m_DescriptorSetLayouts.clear(); for (const auto &pool : m_Pools) { if (pool) { @@ -285,6 +290,7 @@ namespace vkcv auto& set = m_DescriptorSets[id]; if (set.vulkanHandle) { m_Device.freeDescriptorSets(m_Pools[set.poolIndex], 1, &(set.vulkanHandle)); + set.setLayoutHandle = DescriptorSetLayoutHandle(); set.vulkanHandle = nullptr; } }