From c560e552dcb4983224eeb46193de8b5cb4a93937 Mon Sep 17 00:00:00 2001 From: SirLynix Date: Sun, 26 Feb 2023 13:49:04 +0100 Subject: [PATCH] VulkanRenderer/VulkanSwapchain: Don't assume VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR is supported --- src/Nazara/VulkanRenderer/VulkanSwapchain.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Nazara/VulkanRenderer/VulkanSwapchain.cpp b/src/Nazara/VulkanRenderer/VulkanSwapchain.cpp index c4001941b..ab3e7c567 100644 --- a/src/Nazara/VulkanRenderer/VulkanSwapchain.cpp +++ b/src/Nazara/VulkanRenderer/VulkanSwapchain.cpp @@ -576,6 +576,12 @@ namespace Nz swapchainPresentMode = VK_PRESENT_MODE_IMMEDIATE_KHR; } + VkCompositeAlphaFlagBitsKHR compositeAlpha; + if (surfaceCapabilities.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) + compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; + else + compositeAlpha = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR; + // Ensure all operations on the device have been finished before recreating the swapchain (this can be avoided but is more complicated) m_device.WaitForIdle(); @@ -593,7 +599,7 @@ namespace Nz VK_SHARING_MODE_EXCLUSIVE, 0, nullptr, surfaceCapabilities.currentTransform, - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, + compositeAlpha, swapchainPresentMode, VK_TRUE, m_swapchain