En este documento, se hace una introducción al uso de la biblioteca de gráficos de Vulkan mediante la descarga, la compilación y la ejecución de la app de muestra de Khronos©.
Requisitos previos
Antes de comenzar, asegúrate de tener el hardware adecuado y la versión correcta de la plataforma preparados. Debes usar un dispositivo o emulador compatible con Vulkan que ejecute Android 7.0 (Nougat) con un nivel de API 24 o superior.
Para confirmar la versión de Android, ve al menú Configuración y selecciona Acerca del teléfono > Versión de Android. Una vez que confirmes que tienes configurados el hardware y la versión de la plataforma correctos, puedes descargar el software necesario.
Descargar
Antes de comenzar, debes descargar varias herramientas y otros elementos de software. Ten en cuenta que, en un host de Windows, se recomienda evitar una jerarquía de ruta de acceso de archivo profunda para las herramientas y el código fuente. Esto es para evitar límites de ruta de acceso de archivo en algunas versiones del SO Windows.
- Si aún no tienes Android Studio, descárgalo. Esto incluye el SDK de Android más reciente.
- Instala el NDK y CMake desde Android Studio o descárgalos e instálalos por separado.
- Compila y ejecuta la muestra Hello JNI para asegurarte de que Android Studio funcione correctamente.
- Instala python3 y otros componentes enumerados en build.md para tu plataforma de host.
Importa
En esta sección, descargarás el repositorio de muestra de Khronos© Vulkan©, generarás un proyecto de Gradle para Android y lo abrirás con el IDE de Android Studio.
- Configura las siguientes variables del entorno:
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- Agrega CMake a $PATH, que se utiliza para generar secuencias de comandos de compilación de Android:
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- Abre una terminal y descarga el código fuente en tu directorio de desarrollo:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- Sigue estas instrucciones (de Build.md) para generar el proyecto de muestra de Android:
cd Vulkan-Samples ./scripts/generate.py android
- Abre Android Studio. Selecciona File > Open y, luego,
Vulkan-Samples/build/android_gradle/build.gradle
. Verás algo similar a lo siguiente después de que Android Studio cargue el proyecto:Figura 1: El proyecto de muestra dentro de Android Studio
Compila
Todas las muestras de este repositorio se organizan en un proyecto de Android. Para compilar el proyecto, debes realizar una de las siguientes acciones:
- Para compilar las fuentes, usa el menú Build > Make Project o ingresa la combinación de teclas Ctrl-F9.
- Para generar el APK de muestra, selecciona el menú Build > Build Bundle(s)/APK(s) > Build APK(s).
Deberías ver el mensaje de compilación exitosa en la ventana Build de Android Studio. En caso de que aparezcan errores, corrígelos y vuelve a compilar.
![Compilación de un proyecto de muestra con Studio](https://developer.android.com/ndk/guides/images/vk-guide-compile-project.png?authuser=8&hl=es)
Ejecuta
Antes de ejecutar el proyecto de ejemplo, asegúrate de que Android Studio reconozca tu dispositivo Vulkan conectado o Android Emulator. Deberías ver un resultado similar al siguiente:
![Conectando el dispositivo de prueba a Studio.](https://developer.android.com/ndk/guides/images/vk-guide-test-device.png?authuser=8&hl=es)
Para ejecutar el proyecto, haz lo siguiente:
- Usa el menú Run > Run vulkan_sample o haz clic en el botón de ejecución
en la barra de herramientas y espera a que se instale y comience la muestra en tu dispositivo conectado.
- En el dispositivo Android conectado, autoriza las solicitudes de acceso necesarias.
- Habilita Permitir administrar todos los archivos y, luego, presiona la flecha botón Atrás para mostrar la pantalla de inicio principal de muestra.
- Permite el acceso al disco:
Figura 4: Habilitación al acceso al disco
- Deberías ver la pantalla del menú principal de muestra, similar a la siguiente:
Figure 5: Menú principal de muestra - Explora la lista de muestra y selecciona algunas opciones para ejecutar.
Si eres nuevo en el desarrollo de Vulkan, puedes comenzar con ejemplos de "API".
Por ejemplo, si presionas "Hello Triangle" debería mostrarse un triángulo renderizado similar al siguiente:
Figura 6: Muesta de Hello Triangle
El sistema de desarrollo ya está configurado para ejecutar muestras en tu dispositivo de prueba.
Los ejemplos de Vulkan se desarrollan para varios sistemas operativos, incluidos los de computadoras de escritorio y dispositivos móviles. Algunas muestras en Rendimiento, Extensiones y Herramientas pueden ser inestables y fallar en tu dispositivo. Esto puede deberse a varios motivos, como los siguientes:
- Las funciones específicas de Vulkan no se diseñaron para Android.
- Tu versión del SO Android no es compatible.
- La capacidad de la GPU de tu plataforma de hardware.
Explorar
La sección Java de la muestra de Vulkan deriva de la clase NativeActivity. Pasa eventos del ciclo de vida típicos de la aplicación, como la creación, el inicio, la detención y la destrucción del código C/C++. En la sección C/C++ de la muestra, hay un framework de muestra que implementa la funcionalidad de cambio de submuestra de tiempo de ejecución. En un nivel muy alto, los eventos y los mensajes del sistema Android pasan por la siguiente ruta para alcanzar el código de Vulkan de la app de muestra:
- Sección
NativeSampleActivity
de Java - Sección
NativeSampleActivity
de C/C++ android_native_glue
códigoandroid_main
- Framework de muestra
- Código de la submuestra individual
android_main
es el puente entre NativeSampleActivity
y el código de la app, que puede ser el punto de partida para que sigas el código de muestra. Si solo deseas enfocarte en las fuentes específicas de Vulkan, puedes explorar el código en Vulkan_Samples\samples
, que contiene lo siguiente:
- Las muestras de la categoría "API"
- Las muestras de la categoría "performance" (rendimiento)
- Las muestras de la categoría "extensions" (extensiones)
- Las muestras de "tooling" (herramientas)
Vulkan_Samples\shaders
aloja a todos los sombreadores.
Puedes comenzar a explorar las muestras de la categoría "API" para familiarizarte con el uso básico de Vulkan y el framework de muestra. Luego, puede pasar a las muestras de la categoría "Performance" y "Extensions". Para el código del sombreador, puedes usar la vista Project en Android Studio.
![Triangle shader](https://developer.android.com/ndk/guides/images/vk-guide-shaders.png?authuser=8&hl=es)
Recursos adicionales
La API de Vulkan pasó por algunas versiones, por lo que está en desarrollo. El comité estándar de Vulkan y la comunidad de Vulkan crearon un amplio conjunto de material de Vulkan para demostrar el uso y las prácticas recomendadas de la API. En la siguiente lista, se incluyen algunos recursos para el desarrollo de aplicaciones de Vulkan:
Especificación de Vulkan: Khronos Group mantiene la especificación de Vulkan. Consulta la página principal de Vulkan para obtener la especificación completa, el entrenamiento, las guías y los instructivos.
Capas de validación: Las capas de validación son esenciales para el desarrollo de aplicaciones. Consulta la documentación sobre las capas de validación de Vulkan en Android para obtener más detalles.
Shaderc: El código de Shaderc en el NDK desciende del repositorio de Shaderc. Consulta Compiladores de sombreadores a fin de obtener la documentación de uso y las instrucciones para adquirir la versión más reciente.