From 83e8f8cb94bd1a074be0611e27b51f558a1ab348 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 12 Mar 2024 12:39:01 +0100 Subject: [PATCH] Increase backbuffers support for Vulkan on Linux to `8` --- Source/Engine/GraphicsDevice/Vulkan/Config.h | 2 ++ Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp | 2 +- .../Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/Engine/GraphicsDevice/Vulkan/Config.h b/Source/Engine/GraphicsDevice/Vulkan/Config.h index 34e5fe686..d31cb9a06 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Config.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Config.h @@ -18,7 +18,9 @@ #ifndef VULKAN_BACK_BUFFERS_COUNT #define VULKAN_BACK_BUFFERS_COUNT 2 #endif +#ifndef VULKAN_BACK_BUFFERS_COUNT_MAX #define VULKAN_BACK_BUFFERS_COUNT_MAX 4 +#endif /// /// Default amount of frames to wait until resource delete. diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp index ddc1474cf..2379f9b33 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp @@ -393,7 +393,7 @@ bool GPUSwapChainVulkan::CreateSwapChain(int32 width, int32 height) VALIDATE_VULKAN_RESULT(vkGetSwapchainImagesKHR(device, _swapChain, &imagesCount, nullptr)); if (imagesCount < 1 || imagesCount > VULKAN_BACK_BUFFERS_COUNT_MAX) { - LOG(Warning, "Vulkan swapchain got invalid amount of backbuffers {} instead of {} (min {})", imagesCount, VULKAN_BACK_BUFFERS_COUNT, swapChainInfo.minImageCount); + LOG(Warning, "Vulkan swapchain got invalid amount of backbuffers {} instead of {} (min {})", imagesCount, VULKAN_BACK_BUFFERS_COUNT, swapChainInfo.minImageCount); return true; } VkImage images[VULKAN_BACK_BUFFERS_COUNT_MAX]; diff --git a/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h b/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h index e58903c33..3c8ee101e 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h @@ -6,6 +6,9 @@ #if GRAPHICS_API_VULKAN && PLATFORM_LINUX +// Support more backbuffers in case driver decides to use more (https://gitlab.freedesktop.org/apinheiro/mesa/-/issues/9) +#define VULKAN_BACK_BUFFERS_COUNT_MAX 8 + /// /// The implementation for the Vulkan API support for Linux platform. ///