Este documento descreve como começar a usar a biblioteca de gráficos Vulkan, com o download, a compilação e a execução de um app de exemplo Khronos©.
Pré-requisitos
Antes de começar, verifique se você tem o hardware e a versão de plataforma corretos. Use um dispositivo ou um emulador com Android 7.0 (Nougat), API de nível 24 ou versões mais recentes e que tenha suporte à Vulkan.
Para confirmar sua versão do Android, acesse o menu Configurações e selecione Sobre o dispositivo > Versão do Android. Depois de confirmar que tem você está usando o hardware e a versão de plataforma corretos, faça o download do software necessário.
Fazer o download
Antes de começar, você precisa fazer o download de diversas ferramentas e outros softwares. Em um host do Windows, é recomendável evitar uma hierarquia de caminho de arquivo profunda para as ferramentas e o código-fonte. O objetivo é contornar os limites de caminho de arquivo em algumas versões do sistema operacional Windows.
- Se você ainda não tem o Android Studio, faça o download dele. Isso inclui o SDK mais recente do Android.
- Instale o NDK e o CMake pelo Android Studio ou faça o download e a instalação separadamente.
- Crie e execute o exemplo Hello JNI (link em inglês) para garantir que o Android Studio está funcionando corretamente.
- Instale o python3 e os outros componentes listados em build.md (link em inglês) para sua plataforma de host.
Importar
Nesta seção, você vai fazer o download do repositório de exemplos do Khronos© e da Vulkan© (link em inglês), criar um projeto Android para Gradle e abrir esse projeto com o ambiente de desenvolvimento integrado do Android Studio.
- Configure as variáveis de ambiente a seguir:
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- Adicione o CMake ao $PATH, que é usado para gerar scripts de build do Android:
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- Abra um terminal e faça o download do código-fonte para o diretório de desenvolvimento:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- Siga estas instruções, disponíveis na página em inglês do Build.md,
para gerar o projeto Android de exemplo:
cd Vulkan-Samples ./scripts/generate.py android
- Abra o Android Studio. Escolha File > Open e selecione
Vulkan-Samples/build/android_gradle/build.gradle
. Depois que o Android Studio carregar o projeto, você verá uma tela como esta:Figura 1. Projeto de exemplo no Android Studio.
Compilar
Todos os exemplos neste repositório ficam organizados em um projeto Android. Para compilar o projeto, siga uma destas instruções:
- Para compilar as origens, use o menu Build > Make Project ou use as teclas de atalho Ctrl + F9.
- Para gerar o APK de exemplo, selecione o menu Build > Build Bundle(s)/APK(s) > Build APK(s).
A mensagem de êxito do build será mostrada na janela Build do Android Studio. Se algum erro aparecer, corrija e faça a compilação novamente.
Executar
Antes de executar o projeto de exemplo, verifique se o Android Studio reconhece o dispositivo Vulkan conectado ou o Android Emulator. Você verá uma tela como esta:
Para executar o projeto, faça o seguinte:
- Use o menu Run > Run vulkan_sample ou clique no botão de execução na barra de ferramentas e aguarde até que o exemplo seja instalado e iniciado no dispositivo conectado.
- No dispositivo Android conectado, autorize as solicitações de acesso necessárias.
- Ative a opção Acesso para gerenciar todos os arquivos e toque no botão "Voltar" para retornar à tela inicial do exemplo.
- Permita o acesso ao disco.
Figura 4. Permissão de acesso ao disco.
- A tela do menu principal de exemplos será mostrada, como na imagem abaixo:
Figura 5. Menu principal de exemplos. - Navegue pela lista de exemplos e selecione algumas opções para execução.
Se você não tem experiência no desenvolvimento com Vulkan, comece com os da guia "API".
Por exemplo, ao tocar em "Hello Triangle", um triângulo renderizado será mostrado,
como o seguinte:
Figura 6. Exemplo Hello Triange.
Agora, o sistema de desenvolvimento está configurado para executar exemplos no seu dispositivo de teste.
Os exemplos da Vulkan são desenvolvidos para vários sistemas operacionais, incluindo sistemas de computadores e dispositivos móveis. Alguns exemplos nas categorias Performance, Extensions e Tooling podem apresentar instabilidade e travar no dispositivo. Isso pode acontecer por vários motivos, como os seguintes:
- Alguns recursos específicos da Vulkan não foram projetados para Android.
- Não há suporte para a versão do SO Android usada.
- A capacidade de GPU da plataforma de hardware.
Analisar
A seção Java do exemplo Vulkan é derivada da classe NativeActivity. Ela transmite ao código C/C++ eventos de ciclo de vida típicos do app, como criação, início, parada e destruição. Na seção C/C++ do exemplo, há um framework que implementa a funcionalidade de alternância do subexemplo de ambiente de execução. Em um nível muito alto, os eventos ou as mensagens do sistema Android passam pelo seguinte caminho para alcançar o código Vulkan do app de exemplo:
- Seção
NativeSampleActivity
do Java - Seção
NativeSampleActivity
do C/C++ - Código
android_native_glue
android_main
- Framework do exemplo
- Código do subexemplo individual
android_main
é a ponte entre a NativeSampleActivity
e o código do app,
que pode ser o ponto de partida para você acompanhar o código de exemplo. Caso prefira
se concentrar apenas em origens específicas da Vulkan, você pode analisar o código em
Vulkan_Samples\samples
, que contém o seguinte:
- Exemplos da categoria "API"
- Exemplos da categoria "Performance"
- Exemplos da categoria "Extensions"
- Exemplos da categoria "Tooling"
Todos os sombreadores se encontram em Vulkan_Samples\shaders
.
Você pode começar a navegar pelos exemplos da categoria "API" para se familiarizar com o uso básico da Vulkan e o framework de exemplo. Depois, você pode passar para as categorias "Performance" e "Extenstions". Para o código do sombreador, você pode usar a visualização Project no Android Studio.
Outros recursos
Existem algumas versões diferentes da API Vulkan, o que significa que ela está em desenvolvimento. O comitê de padrões e a comunidade da Vulkan criaram um extenso conjunto de materiais sobre essa API, que demonstram o uso e as práticas recomendadas. A lista a seguir contém alguns recursos para o desenvolvimento de aplicativos com a Vulkan:
Especificação da Vulkan: é mantida pelo Grupo Khronos. Consulte a página inicial da Vulkan para ver a especificação completa, além dos treinamentos, guias e tutoriais (links em inglês) disponíveis.
Camadas de validação: são essenciais para o desenvolvimento de aplicativos. Consulte a documentação Camadas de validação da Vulkan no Android para ver mais informações.
Shaderc: um código no NDK derivado do repositório Shaderc (link em inglês). Para ver a documentação de uso e as instruções para instalar a versão mais recente, consulte Compiladores de sombreador.