## C Specification

To query the basic capabilities of a surface, needed in order to create a swapchain, call:

VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
VkPhysicalDevice                            physicalDevice,
VkSurfaceKHR                                surface,
VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);

## Parameters

• physicalDevice is the physical device that will be associated with the swapchain to be created, as described for vkCreateSwapchainKHR.

• surface is the surface that will be associated with the swapchain.

• pSurfaceCapabilities is a pointer to a VkSurfaceCapabilitiesKHR structure in which the capabilities are returned.

## Description

Valid Usage (Implicit)
• physicalDevice must be a valid VkPhysicalDevice handle

• surface must be a valid VkSurfaceKHR handle

• pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure

• Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance

Return Codes
On success, this command returns
• VK_SUCCESS

On failure, this command returns
• VK_ERROR_OUT_OF_HOST_MEMORY

• VK_ERROR_OUT_OF_DEVICE_MEMORY

• VK_ERROR_SURFACE_LOST_KHR