Android admite Vulkan, una API multiplataforma de baja sobrecarga para gráficos 3D de alto rendimiento. Al igual que OpenGL ES (GLES), Vulkan proporciona herramientas para crear gráficos en tiempo real de alta calidad en las apps. Entre las ventajas de usar Vulkan, se incluyen la reducción de la sobrecarga de la CPU y la compatibilidad con el lenguaje intermedio binario SPIR-V.
Los proveedores de sistemas en chip (SoC), como los proveedores de hardware independientes de la GPU (IHV), pueden escribir controladores de Vulkan para Android. Los OEM deben integrar estos controladores para dispositivos específicos. Para obtener detalles sobre cómo un controlador de Vulkan interactúa con el sistema, cómo se deben instalar las herramientas específicas de la GPU y los requisitos específicos de Android, consulta Implementación de Vulkan.
Los desarrolladores de aplicaciones usan Vulkan para crear apps que ejecutan comandos en la GPU con una sobrecarga significativamente reducida. Vulkan también proporciona una asignación más directa a las capacidades que se encuentran en el hardware de gráficos actual en comparación con EGL y GLES, lo que minimiza las oportunidades de errores del controlador y reduce el tiempo de prueba del desarrollador.
Para obtener información general sobre Vulkan, consulta la Descripción general de Vulkan o la lista de Recursos.
Componentes de Vulkan
La compatibilidad con Vulkan incluye los siguientes componentes.
Figura 1: Componentes de Vulkan
Nombre del componente | Proveedor | Descripción |
---|---|---|
Capas de validación de Vulkan | Android (en el NDK) | Son bibliotecas que se usan durante el desarrollo de apps de Vulkan para encontrar errores en el uso de la API de Vulkan de una app. Después de que se detecten errores de uso de la API, se deben quitar estas bibliotecas. |
Tiempo de ejecución de Vulkan | Android | Una biblioteca nativa, libvulkan.so , que proporciona una API de Vulkan nativa.La mayoría de las funciones del tiempo de ejecución de Vulkan se implementan con un controlador proporcionado por el proveedor de la GPU. El tiempo de ejecución de Vulkan encapsula el controlador, proporciona capacidades de interceptación de la API (para la depuración y otras herramientas para desarrolladores) y administra la interacción entre el controlador y las dependencias de la plataforma. |
Controlador de Vulkan | SoC | Asigna la API de Vulkan a comandos e interacciones de GPU específicos del hardware con el controlador de gráficos del kernel. |
Componentes modificados
BufferQueue y Gralloc admiten Vulkan:
- BufferQueue: Los valores y métodos de enumeración adicionales en BufferQueue y la interfaz
ANativeWindow
permiten que el tiempo de ejecución de Vulkan se conecte a BufferQueue a través deANativeWindow
. - Gralloc. Una interfaz opcional permite que Gralloc descubra si se puede usar un formato determinado para una combinación específica de productor/consumidor sin asignar un búfer.
Para obtener detalles sobre estos componentes, consulta BufferQueue y gralloc. Para obtener detalles sobre ANativeWindow
, consulta EGLSurfaces y OpenGL ES.
Recursos
Usa los siguientes recursos para obtener más información sobre Vulkan:
-
Vulkan Loader (
libvulkan.so
) enplatform/frameworks/native/vulkan
. Contiene el cargador de Vulkan de Android, así como algunas herramientas relacionadas con Vulkan que son útiles para los desarrolladores de plataformas. - Implementación de Vulkan Está dirigido a los IHV de GPU que escriben controladores de Vulkan para Android y a los OEM que integran esos controladores para dispositivos específicos. Describe cómo un controlador de Vulkan interactúa con el sistema, cómo se deben instalar las herramientas específicas de la GPU y los requisitos de implementación específicos de Android.
- Guía de la API de Vulkan Graphics. Incluye información para comenzar a usar Vulkan en apps para Android, los lineamientos de diseño de Vulkan de la plataforma de Android, el uso de los compiladores de sombreadores de Vulkan y el uso de capas de validación para garantizar la estabilidad en las apps que usan Vulkan.
- Vulkan News. Cubre eventos, parches, instructivos y más artículos de noticias relacionados con Vulkan.