## 29.1. WSI Platform

A platform is an abstraction for a window system, OS, etc. Some examples include MS Windows, Android, and Wayland. The Vulkan API may be integrated in a unique manner for each platform.

The Vulkan API does not define any type of platform object. Platform-specific WSI extensions are defined, which contain platform-specific functions for using WSI. Use of these extensions is guarded by preprocessor symbols.

- VK_USE_PLATFORM_ANDROID_KHR - Android
- VK_USE_PLATFORM_MIR_KHR - Mir
- VK_USE_PLATFORM_WAYLAND_KHR - Wayland
- VK_USE_PLATFORM_WIN32_KHR - Microsoft Windows
- VK_USE_PLATFORM_XCB_KHR - X Window System, using the XCB library
- VK_USE_PLATFORM_XLIB_KHR - X Window System, using the Xlib library

In order for an application to be compiled to use WSI with a given platform, it can #define the appropriate preprocessor symbol prior including the "vulkan.h" header file. Each platform-specific extension is an instance extension; and the application must enable instance extensions with `vkCreateInstance` before using them.