VK_KHR_android_surface(3)

# VK_KHR_android_surface(3) Manual Page

## Name

VK_KHR_android_surface - instance extension

Loading… please wait.

## Registered Extension Number

9

## Revision

6

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_surface

## Contact

- Jesse Hall [GitHub]critsec

## Other Extension Metadata

Last Modified Date

  2016-01-14

IP Status

  No known IP claims.

Contributors

  - Patrick Doane, Blizzard

  - Faith Ekstrand, Intel

  - Ian Elliott, LunarG

  - Courtney Goeltzenleuchter, LunarG

  - Jesse Hall, Google

  - James Jones, NVIDIA

  - Antoine Labour, Google

  - Jon Leech, Khronos

  - David Mao, AMD

  - Norbert Nopper, Freescale

  - Alon Or-bach, Samsung

  - Daniel Rakos, AMD

  - Graham Sellers, AMD

  - Ray Smith, ARM

  - Jeff Vigil, Qualcomm

  - Chia-I Wu, LunarG

## Description

The `VK_KHR_android_surface` extension is an instance extension. It provides a mechanism to create a VkSurfaceKHR object (defined by the `VK_KHR_surface` extension) that refers to an ANativeWindow, Android’s native surface type. The ANativeWindow represents the producer endpoint of any buffer queue, regardless of consumer endpoint. Common consumer endpoints for `ANativeWindows` are the system window compositor, video encoders, and application-specific compositors importing the images through a `SurfaceTexture`.

## New Base Types

- ANativeWindow

## New Commands

- vkCreateAndroidSurfaceKHR

## New Structures

- VkAndroidSurfaceCreateInfoKHR

## New Bitmasks

- VkAndroidSurfaceCreateFlagsKHR

## New Enum Constants

- `VK_KHR_ANDROID_SURFACE_EXTENSION_NAME`

- `VK_KHR_ANDROID_SURFACE_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR

## Issues

1) Does Android need a way to query for compatibility between a particular physical device (and queue family?) and a specific Android display?

RESOLVED: No. Currently on Android, any physical device is expected to be able to present to the system compositor, and all queue families must support the necessary image layout transitions and synchronization operations.

## Version History

- Revision 1, 2015-09-23 (Jesse Hall)

  - Initial draft.

- Revision 2, 2015-10-26 (Ian Elliott)

  - Renamed from VK_EXT_KHR_android_surface to VK_KHR_android_surface.

- Revision 3, 2015-11-03 (Daniel Rakos)

  - Added allocation callbacks to surface creation function.

- Revision 4, 2015-11-10 (Jesse Hall)

  - Removed VK_ERROR_INVALID_ANDROID_WINDOW_KHR.

- Revision 5, 2015-11-28 (Daniel Rakos)

  - Updated the surface create function to take a pCreateInfo structure.

- Revision 6, 2016-01-14 (James Jones)

  - Moved VK_ERROR_NATIVE_WINDOW_IN_USE_KHR from the VK_KHR_android_surface to the VK_KHR_surface extension.

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0