Cómo usar Vulkan para gráficos

Vulkan es una API de gráficos 3D multiplataforma moderna que se diseñó para minimizar la abstracción entre el hardware de gráficos del dispositivo y tu juego. Vulkan es la principal API de gráficos de bajo nivel de Android que reemplaza a OpenGL ES. OpenGL ES aún es compatible con Android, pero ya no se encuentra en desarrollo activo de funciones. Vulkan ofrece las siguientes ventajas en comparación con OpenGL ES:

  • Arquitectura más eficiente con menor sobrecarga de CPU en el controlador de gráficos
  • Nuevas estrategias de optimización para mejorar el rendimiento de la CPU
  • Nuevas funciones de gráficos que no están disponibles en OpenGL ES, como las APIs desvinculadas y el trazado de rayos

Vulkan está disponible en Android a partir de Android 7 (nivel de API 24). Todos los dispositivos Android de 64 bits a partir de Android 10 (nivel de API 29) admiten Vulkan 1.1. El ochenta y ocho porciento de los dispositivos Android activos admite Vulkan. El perfil del modelo de referencia de Android define un conjunto de funciones mínimas para dispositivos compatibles con Vulkan.

Vulkan te permite crear juegos que se ven y funcionan mejor. Vulkan libera todo el potencial del hardware gráfico moderno. El framework de renderización de la IU de Android usa Vulkan en dispositivos compatibles. Las versiones actuales de los motores de juegos Unity y Unreal eligen Vulkan como procesador predeterminado en dispositivos Android compatibles. El proyecto ANGLE usa una implementación conforme a la API de OpenGL ES por sobre Vulkan.

Primeros pasos

C/C++

Para aprender a usar Vulkan en tu motor de juego C/C++ en Android, consulta Cómo comenzar a usar Vulkan en Android.

Además, en la documentación del Native Development Kit (NDK), hay una sección genérica de Vulkan para desarrolladores que no son de juegos en la que se abordan los siguientes temas:

Motores de juego

Acerca de ANGLE

Vulkan es la interfaz preferida de Android para la GPU. Android 15 y versiones posteriores incluyen ANGLE como una capa opcional para ejecutar OpenGL ES sobre Vulkan. El cambio a ANGLE estandariza la implementación de OpenGL de Android para mejorar la compatibilidad y, en algunos casos, el rendimiento.

Prueba la estabilidad y el rendimiento de tu app de OpenGL ES con ANGLE en una amplia variedad de dispositivos con Android 15 o versiones posteriores. Para ello, habilita ANGLE para tu paquete con los siguientes dos comandos de adb. Reemplaza "package-name" por el paquete que deseas probar.

adb shell settings put global angle_gl_driver_selection_pkgs package-name

adb shell settings put global angle_gl_driver_selection_values angle

Estos parámetros de configuración persisten después de que se reinicia el dispositivo. Para inhabilitar ANGLE, usa los siguientes comandos:

adb shell settings delete global angle_gl_driver_selection_pkgs

adb shell settings delete global angle_gl_driver_selection_values

Habilita el uso de ANGLE a través del manifiesto de la aplicación

En Android 17 y versiones posteriores, los desarrolladores pueden agregar una marca de metadatos en el manifiesto de la aplicación para solicitar ANGLE como controlador de GLES. Esto no garantiza que se usará ANGLE, sino que indica que se "prefiere" usar ANGLE como controlador de GLES. Si no se puede usar ANGLE, se usará el controlador GLES del proveedor de la GPU.

<application android:appCategory="game">
    <meta-data android:name="com.android.graphics.driver.prefer_angle" android:value="true" />
</application>

Hoja de ruta de Android ANGLE en Vulkan

Hoja de ruta de Android ANGLE en Vulkan

Informa un problema con ANGLE

Si tienes algún problema con ANGLE, infórmanos al respecto a través de nuestra herramienta de seguimiento de errores.