title: Why doesn't vkGetPhysicalDeviceSurfaceFormatsKHR have to return at least one present mode?
body: <p>The function <code>vkGetPhysicalDeviceSurfaceFormatsKHR</code> has to return at least one format, <a href="https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html" rel="nofollow noreferrer">as described in the specification</a>:</p>
  <blockquote>
  <p>The number of format pairs supported <strong>must</strong> be greater than or equal to 1. <code>pSurfaceFormats</code> must not contain an entry whose value for <code>format</code> is <code>VK_FORMAT_UNDEFINED</code>.</p>
  </blockquote>
  <p>Why doesn't the same apply to <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code>? I would assume that there should always be at least one present mode supported, as the <a href="https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html" rel="nofollow noreferrer">Valid Usage Requirements for this function</a> require that the <code>surface</code> be supported by the <code>physicalDevice</code>:</p>
  <blockquote>
  <h2>Valid Usage</h2>
  <ul>
  <li><p><code>VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211</code></p>
  <p><code>surface</code> <strong>must</strong> be supported by <code>physicalDevice</code>, as reported by <code>vkGetPhysicalDeviceSurfaceSupportKHR</code> or an equivalent platform-specific mechanism</p>
  </li>
  </ul>
  </blockquote>
  <p>Supporting the <code>surface</code>, 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?</p>