From c17f7f47cb51dc1b7d18c0189dd76b808b7ecfed Mon Sep 17 00:00:00 2001 From: Jon Creighton <65668160+creijon@users.noreply.github.com> Date: Tue, 12 Aug 2025 08:36:06 +0200 Subject: [PATCH] Fix for some drivers reporting maxImageCount as 0 (#2251) --- RAII_Samples/utils/utils.hpp | 2 +- samples/utils/utils.hpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/RAII_Samples/utils/utils.hpp b/RAII_Samples/utils/utils.hpp index 06943c9..f96779a 100644 --- a/RAII_Samples/utils/utils.hpp +++ b/RAII_Samples/utils/utils.hpp @@ -364,7 +364,7 @@ namespace vk vk::PresentModeKHR presentMode = vk::su::pickPresentMode( physicalDevice.getSurfacePresentModesKHR( surface ) ); vk::SwapchainCreateInfoKHR swapChainCreateInfo( {}, surface, - vk::su::clamp( 3u, surfaceCapabilities.minImageCount, surfaceCapabilities.maxImageCount ), + vk::su::clampSurfaceImageCount( 3u, surfaceCapabilities.minImageCount, surfaceCapabilities.maxImageCount ), colorFormat, surfaceFormat.colorSpace, swapchainExtent, diff --git a/samples/utils/utils.hpp b/samples/utils/utils.hpp index 4b93125..7cf92f8 100644 --- a/samples/utils/utils.hpp +++ b/samples/utils/utils.hpp @@ -77,6 +77,7 @@ namespace vk VULKAN_HPP_INLINE uint32_t clampSurfaceImageCount( const uint32_t desiredImageCount, const uint32_t minImageCount, const uint32_t maxImageCount ) { uint32_t imageCount = ( std::max )( desiredImageCount, minImageCount ); + // Some drivers report maxImageCount as 0, so only clamp to max if it is valid. if ( maxImageCount > 0 ) { imageCount = ( std::min )( imageCount, maxImageCount );