E.6. VK_KHR_android_surface

Name String
Extension Type
Instance extension
Registered Extension Number
Last Modified Date
IP Status
No known IP claims.
  • This extension is written against revision 1.0 of the Vulkan API.
  • This extension requires VK_KHR_surface.
  • Patrick Doane, Blizzard
  • Jason 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
  • Jesse Hall, Google

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.

E.6.1. New Object Types


E.6.2. New Enum Constants

  • Extending VkStructureType:


E.6.3. New Enums


E.6.4. New Structures

E.6.5. New Functions

E.6.6. 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 GPU 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.

E.6.7. 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)

  • 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.