Fix for some drivers reporting maxImageCount as 0 (#2251)

This commit is contained in:
Jon Creighton 2025-08-12 08:36:06 +02:00 committed by GitHub
parent c90a5bac97
commit c17f7f47cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2 additions and 1 deletions

View File

@ -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,

View File

@ -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 );