diff --git a/Source/Engine/GraphicsDevice/Vulkan/Config.h b/Source/Engine/GraphicsDevice/Vulkan/Config.h index 2bd27cfc4..ebb0fa6c1 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Config.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Config.h @@ -15,7 +15,9 @@ #endif // Amount of back buffers to use +#ifndef VULKAN_BACK_BUFFERS_COUNT #define VULKAN_BACK_BUFFERS_COUNT 2 +#endif #define VULKAN_BACK_BUFFERS_COUNT_MAX 16 /// diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp index d9a49d9e4..ee86010b1 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUSwapChainVulkan.cpp @@ -363,7 +363,7 @@ bool GPUSwapChainVulkan::CreateSwapChain(int32 width, int32 height) VkSwapchainCreateInfoKHR swapChainInfo; RenderToolsVulkan::ZeroStruct(swapChainInfo, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR); swapChainInfo.surface = _surface; - swapChainInfo.minImageCount = Math::Clamp(VULKAN_BACK_BUFFERS_COUNT, surfProperties.minImageCount, surfProperties.maxImageCount); + swapChainInfo.minImageCount = Math::Clamp(VULKAN_BACK_BUFFERS_COUNT, surfProperties.minImageCount, Math::Min(surfProperties.maxImageCount, VULKAN_BACK_BUFFERS_COUNT_MAX)); swapChainInfo.imageFormat = result.format; swapChainInfo.imageColorSpace = result.colorSpace; swapChainInfo.imageExtent.width = width; diff --git a/Source/Engine/GraphicsDevice/Vulkan/Mac/MacVulkanPlatform.h b/Source/Engine/GraphicsDevice/Vulkan/Mac/MacVulkanPlatform.h index dbdba0ac1..ffe7a15e9 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Mac/MacVulkanPlatform.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Mac/MacVulkanPlatform.h @@ -6,6 +6,8 @@ #if GRAPHICS_API_VULKAN && PLATFORM_MAC +#define VULKAN_BACK_BUFFERS_COUNT 3 + /// /// The implementation for the Vulkan API support for Mac platform. ///