From 1d06e56c9e7ee396b331c5364305554dab8d1c95 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Thu, 11 Jul 2024 16:56:52 +0200 Subject: [PATCH] Delete created semaphores on close --- openVulkanoCpp/Vulkan/Renderer.cpp | 8 +++++--- openVulkanoCpp/Vulkan/Renderer.hpp | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openVulkanoCpp/Vulkan/Renderer.cpp b/openVulkanoCpp/Vulkan/Renderer.cpp index bdc3189..92b57a0 100644 --- a/openVulkanoCpp/Vulkan/Renderer.cpp +++ b/openVulkanoCpp/Vulkan/Renderer.cpp @@ -32,7 +32,9 @@ namespace OpenVulkano::Vulkan for (int i = 0; i < context.swapChain.GetImageCount(); i++) { waitSemaphores.emplace_back(); - waitSemaphores[i].renderComplete.push_back(context.device->device.createSemaphore({})); + vk::Semaphore sema = context.device->device.createSemaphore({}); + semaphores.push_back(sema); + waitSemaphores[i].renderComplete.push_back(sema); waitSemaphores[i].renderReady.resize(2); } resourceManager.Init(&context, context.swapChain.GetImageCount()); @@ -73,9 +75,9 @@ namespace OpenVulkano::Vulkan void Renderer::Close() { context.device->WaitIdle(); - for (int i = 0; i < context.swapChain.GetImageCount(); i++) + for (auto& sema : semaphores) { - //context.device->device.destroySemaphore(waitSemaphores[i]); + context.device->device.destroySemaphore(sema); } uiRenderer.Close(); resourceManager.Close(); diff --git a/openVulkanoCpp/Vulkan/Renderer.hpp b/openVulkanoCpp/Vulkan/Renderer.hpp index f981bae..39e1d2d 100644 --- a/openVulkanoCpp/Vulkan/Renderer.hpp +++ b/openVulkanoCpp/Vulkan/Renderer.hpp @@ -30,6 +30,7 @@ namespace OpenVulkano::Vulkan { Context context; std::shared_ptr logger; + std::vector semaphores; std::vector waitSemaphores; Scene::Scene* scene = nullptr; ResourceManager resourceManager;