C.13. Extension Function Prototypes

Function pointer declarations and function prototypes for all core Vulkan
API commands are included in the vulkan.h file. These come from the
official XML specification of the Vulkan API hosted by Khronos.

Function pointer declarations are also included in the vulkan.h file for
all commands defined by registered extensions. Function prototypes for
extensions may be included in vulkan.h. Extension commands that are part
of the Vulkan ABI must be flagged in the XML. Function prototypes will
be included in vulkan.h for all extension commands that are part of the
Vulkan ABI.

An extension can be considered platform specific, in which case its
interfaces in vulkan.h are protected by #ifdefs. This is orthogonal to
whether an extension command is considered to be part of the Vulkan ABI.

The initial set of WSI extension commands (i.e. for VK_KHR_surface,
VK_KHR_swapchain, and VK_KHR_*_surface) are considered to be part of the
Vulkan ABI. Function prototypes for these WSI commands are included in
the vulkan.h provided by Khronos, though the platform-specific portions of
vulkan.h are protected by #ifdefs.

Note

Based on feedback from implementers, Khronos expects that the Android,
Linux, and Windows Vulkan SDKs will include our vulkan.h and export
the supported WSI functions for those platforms from their loader
libraries. Other implementations can make different choices for their
headers and loader libraries, but are encouraged to be consistent with
these implementations.