page.title=Vulkan @jd:body
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 support includes the following components:
(libvulkan.so
) that provides a new public native API
called Vulkan. Most functionality
is implemented by a driver provided by the GPU vendor; the runtime wraps the
driver, provides API interception capabilities (for debugging and other
developer tools), and manages the interaction between the driver and platform
dependencies such as BufferQueue.Android 7.0 modifies the following existing graphics components to support Vulkan:
ANativeWindow
interface.
Includes minor modifications (new enum values and new methods) to
ANativeWindow
and BufferQueue, but no architectural changes.For details on these components, see
BufferQueue and
gralloc (for details on ANativeWindow
, see
EGLSurface and OpenGL
ES).
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.
Use the following resources to learn more about Vulkan:
platform/frameworks/native/vulkan
.
Contains Android's Vulkan loader, as well as some Vulkan-related tools useful to
platform developers.