From 552c28294e67fc20af29ae7e16ddae822beedfdf Mon Sep 17 00:00:00 2001 From: Roman Kuznetsov Date: Wed, 20 Feb 2019 00:37:05 +0300 Subject: [PATCH] [vulkan] Small fixes --- drape/vulkan/vulkan_base_context.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drape/vulkan/vulkan_base_context.cpp b/drape/vulkan/vulkan_base_context.cpp index f1612bf094..7a9bc0809e 100644 --- a/drape/vulkan/vulkan_base_context.cpp +++ b/drape/vulkan/vulkan_base_context.cpp @@ -652,7 +652,7 @@ void VulkanBaseContext::RecreateSwapchain() CHECK(m_surface.is_initialized(), ()); CHECK(m_surfaceFormat.is_initialized(), ()); - VkSwapchainKHR oldSwapchain = m_swapchain; + DestroySwapchain(); VkSwapchainCreateInfoKHR swapchainCI = {}; swapchainCI.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; @@ -683,19 +683,11 @@ void VulkanBaseContext::RecreateSwapchain() // This mode waits for the vertical blank ("v-sync"). swapchainCI.presentMode = VK_PRESENT_MODE_FIFO_KHR; - swapchainCI.oldSwapchain = oldSwapchain; + swapchainCI.oldSwapchain = VK_NULL_HANDLE; swapchainCI.clipped = VK_TRUE; CHECK_VK_CALL(vkCreateSwapchainKHR(m_device, &swapchainCI, nullptr, &m_swapchain)); - if (oldSwapchain != VK_NULL_HANDLE) - { - for (auto const & imageView : m_swapchainImageViews) - vkDestroyImageView(m_device, imageView, nullptr); - m_swapchainImageViews.clear(); - m_swapchainImages.clear(); - } - // Create swapchain image views. uint32_t swapchainImageCount = 0; CHECK_VK_CALL(vkGetSwapchainImagesKHR(m_device, m_swapchain, &swapchainImageCount, nullptr)); @@ -725,6 +717,9 @@ void VulkanBaseContext::RecreateSwapchain() void VulkanBaseContext::DestroySwapchain() { + if (m_swapchain == VK_NULL_HANDLE) + return; + for (auto const & imageView : m_swapchainImageViews) vkDestroyImageView(m_device, imageView, nullptr); m_swapchainImageViews.clear();