Vulkan Swapchain Quirks

Non-Apple platforms swapchain extent/window extent mismatch

On non-apple platforms, when using high-dpi displays there's a mismatch between the reported surface extent and the real window size.

In this case, be sure to query your real window's size in pixels instead of relying on currentExtent.width and currentExtent.height, clamped between minImageExtent and maxImageExtent.

Here's an example from SDL's GPU subsystem

NVIDIA + Win32 invalid swapchain extent

On Win32, sometimes NVIDIA drivers will report an invalid surface with 0x0 extent.

Creating an swapchain with invalid dimensions is illegal and will crash your application!

Be sure to check VkSurfaceCapabilitiesKHR's currentExtent.width and currentExtent.height for 0-values.

Here's an example from SDL's GPU subsystem