mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-08 16:01:19 +12:00
Vulkan: Proper fix for sampler leak in draw_getOrCreateDescriptorSet
This commit is contained in:
parent
44a3c006f6
commit
f01360983f
4 changed files with 22 additions and 10 deletions
|
@ -3195,7 +3195,10 @@ VkDescriptorSetInfo::~VkDescriptorSetInfo()
|
|||
performanceMonitor.vk.numDescriptorDynUniformBuffers.decrement(statsNumDynUniformBuffers);
|
||||
performanceMonitor.vk.numDescriptorStorageBuffers.decrement(statsNumStorageBuffers);
|
||||
|
||||
VulkanRenderer::GetInstance()->ReleaseDestructibleObject(m_vkObjDescriptorSet);
|
||||
auto renderer = VulkanRenderer::GetInstance();
|
||||
renderer->ReleaseDestructibleObject(m_vkObjDescriptorSet);
|
||||
for(auto& sampler : m_vkObjSamplers)
|
||||
renderer->ReleaseDestructibleObject(sampler);
|
||||
m_vkObjDescriptorSet = nullptr;
|
||||
}
|
||||
|
||||
|
@ -3791,8 +3794,6 @@ VKRObjectTextureView::VKRObjectTextureView(VKRObjectTexture* tex, VkImageView vi
|
|||
VKRObjectTextureView::~VKRObjectTextureView()
|
||||
{
|
||||
auto logicalDevice = VulkanRenderer::GetInstance()->GetLogicalDevice();
|
||||
if (m_textureViewSampler != VK_NULL_HANDLE)
|
||||
vkDestroySampler(logicalDevice, m_textureViewSampler, nullptr);
|
||||
if (m_textureDefaultSampler[0] != VK_NULL_HANDLE)
|
||||
vkDestroySampler(logicalDevice, m_textureDefaultSampler[0], nullptr);
|
||||
if (m_textureDefaultSampler[1] != VK_NULL_HANDLE)
|
||||
|
@ -4008,3 +4009,9 @@ VKRObjectDescriptorSet::~VKRObjectDescriptorSet()
|
|||
vkFreeDescriptorSets(vkr->GetLogicalDevice(), vkr->GetDescriptorPool(), 1, &descriptorSet);
|
||||
performanceMonitor.vk.numDescriptorSets.decrement();
|
||||
}
|
||||
|
||||
VKRObjectSampler::~VKRObjectSampler()
|
||||
{
|
||||
auto vkr = VulkanRenderer::GetInstance();
|
||||
vkDestroySampler(vkr->GetLogicalDevice(), sampler, nullptr);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue