Android 7.0 adds support for Vulkan, a low-overhead, cross-platform API for high-performance 3D graphics. Like OpenGL ES, Vulkan provides tools for creating high-quality, real-time graphics in applications. Vulkan advantages include reductions in CPU overhead and support for the SPIR-V Binary Intermediate language.

System on chip vendors (SoCs) such as GPU Independent Hardware Vendors (IHVs) can write Vulkan drivers for Android; OEMs simply need to integrate these drivers for specific devices. For details on how a Vulkan driver interacts with the system, how GPU-specific tools should be installed, and Android-specific requirements, see Implementing Vulkan.

Application developers can take advantage of Vulkan to create apps that execute commands on the GPU with significantly reduced overhead. Vulkan also provides a more direct mapping to the capabilities found in current graphics hardware, minimizing opportunities for driver bugs and reducing developer testing time (e.g. less time required to troubleshoot Vulkan bugs).

For general information on Vulkan, refer to the Vulkan Overview or see the list of Resources below.

Vulkan components

Vulkan support includes the following components:

Figure 1: Vulkan components

Modified components

Android 7.0 modifies the following existing graphics components to support Vulkan:

For details on these components, see BufferQueue and gralloc (for details on ANativeWindow, see EGLSurface and OpenGL ES).

Vulkan API

The Android platform includes an Android-specific implementation of the Vulkan API specification from the Khronos Group. Android applications must use the Window System Integration (WSI) extensions to output their rendering.

Resources

Use the following resources to learn more about Vulkan: