// Copyright 2017-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_get_surface_capabilities2.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2017-02-27
*IP Status*::
    No known IP claims.
*Contributors*::
  - Ian Elliott, Google
  - James Jones, NVIDIA
  - Alon Or-bach, Samsung

=== Description

This extension provides new entry points to query device surface
capabilities in a way that can be easily extended by other extensions,
without introducing any further entry points.
This extension can be considered the `apiext:VK_KHR_surface` equivalent of
the `apiext:VK_KHR_get_physical_device_properties2` extension.

include::{generated}/interfaces/VK_KHR_get_surface_capabilities2.txt[]

=== Issues

1) What should this extension be named?

*RESOLVED*: `VK_KHR_get_surface_capabilities2`.
Other alternatives:

  * `VK_KHR_surface2`
  * One extension, combining a separate display-specific query extension.

2) Should additional WSI query functions be extended?

*RESOLVED*:

  * flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR: Yes.
    The need for this motivated the extension.
  * flink:vkGetPhysicalDeviceSurfaceSupportKHR: No.
    Currently only has boolean output.
    Extensions should instead extend
    flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR.
  * flink:vkGetPhysicalDeviceSurfaceFormatsKHR: Yes.
  * flink:vkGetPhysicalDeviceSurfacePresentModesKHR: No.
    Recent discussion concluded this introduced too much variability for
    applications to deal with.
    Extensions should instead extend
    flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR.
  * flink:vkGetPhysicalDeviceXlibPresentationSupportKHR: Not in this
    extension.
  * flink:vkGetPhysicalDeviceXcbPresentationSupportKHR: Not in this
    extension.
  * flink:vkGetPhysicalDeviceWaylandPresentationSupportKHR: Not in this
    extension.
  * flink:vkGetPhysicalDeviceWin32PresentationSupportKHR: Not in this
    extension.

=== Version History

 * Revision 1, 2017-02-27 (James Jones)
   - Initial draft.
