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