# VkSurfaceKHR(3) Manual Page

## Name

VkSurfaceKHR - Opaque handle to a surface object

Loading… please wait.

## C Specification

Native platform surface or window objects are abstracted by surface objects, which are represented by `VkSurfaceKHR` handles:

    // Provided by VK_KHR_surface
    VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)

## Description

The `VK_KHR_surface` extension declares the `VkSurfaceKHR` object, and provides a function for destroying `VkSurfaceKHR` objects. Separate platform-specific extensions each provide a function for creating a `VkSurfaceKHR` object for the respective platform. From the application’s perspective this is an opaque handle, just like the handles of other Vulkan objects.

Note | On certain platforms, the Vulkan loader and ICDs may have conventions that treat the handle as a pointer to a structure containing the platform-specific information about the surface. This will be described in the documentation for the loader-ICD interface, and in the `vk_icd.h` header file of the LoaderAndTools source-code repository. This does not affect the loader-layer interface; layers may wrap `VkSurfaceKHR` objects.

## See Also

VK_DEFINE_NON_DISPATCHABLE_HANDLE, VK_KHR_surface, VkPhysicalDeviceSurfaceInfo2KHR, VkSwapchainCreateInfoKHR, vkCreateAndroidSurfaceKHR, vkCreateDirectFBSurfaceEXT, vkCreateDisplayPlaneSurfaceKHR, vkCreateHeadlessSurfaceEXT, vkCreateIOSSurfaceMVK, vkCreateImagePipeSurfaceFUCHSIA, vkCreateMacOSSurfaceMVK, vkCreateMetalSurfaceEXT, vkCreateScreenSurfaceQNX, vkCreateStreamDescriptorSurfaceGGP, vkCreateSurfaceOHOS, vkCreateViSurfaceNN, vkCreateWaylandSurfaceKHR, vkCreateWin32SurfaceKHR, vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkDestroySurfaceKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR, vkGetPhysicalDeviceSurfaceCapabilities2EXT, vkGetPhysicalDeviceSurfaceCapabilitiesKHR, vkGetPhysicalDeviceSurfaceFormatsKHR, vkGetPhysicalDeviceSurfacePresentModesKHR, vkGetPhysicalDeviceSurfaceSupportKHR

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0