The function vkGetPhysicalDeviceSurfaceFormatsKHR has to return at least one format, as described in the specification:
The number of format pairs supported must be greater than or equal to 1.
pSurfaceFormatsmust not contain an entry whose value forformatisVK_FORMAT_UNDEFINED.
Why doesn't the same apply to vkGetPhysicalDeviceSurfacePresentModesKHR? I would assume that there should always be at least one present mode supported, as the Valid Usage Requirements for this function require that the surface be supported by the physicalDevice:
Valid Usage
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211
surfacemust be supported byphysicalDevice, as reported byvkGetPhysicalDeviceSurfaceSupportKHRor an equivalent platform-specific mechanism
Supporting the surface, I would imagine, would imply that presenting to it is possible, so a present mode should always be available. Perhaps this is an oversight in the specification?