O Android oferece suporte ao Vulkan, uma API multiplataforma de baixa sobrecarga para gráficos 3D de alto desempenho. Assim como o OpenGL ES (GLES), o Vulkan oferece ferramentas para criar gráficos de alta qualidade e em tempo real em apps. As vantagens de usar o Vulkan incluem reduções na sobrecarga da CPU e compatibilidade com a linguagem SPIR-V Binary Intermediate (link em inglês).
Fornecedores de system on a chip (SoCs), como fornecedores independentes de hardware (IHVs) de GPU, podem escrever drivers do Vulkan para Android. Os OEMs precisam integrar esses drivers para dispositivos específicos. Para detalhes sobre como um driver do Vulkan interage com o sistema, como instalar ferramentas específicas da GPU e requisitos específicos do Android, consulte Implementação do Vulkan.
Os desenvolvedores de aplicativos usam o Vulkan para criar apps que executam comandos na GPU com uma sobrecarga significativamente reduzida. O Vulkan também oferece um mapeamento mais direto para os recursos encontrados no hardware gráfico atual em comparação com EGL e GLES, minimizando oportunidades de bugs de driver e reduzindo o tempo de teste do desenvolvedor.
Para informações gerais sobre o Vulkan, consulte a visão geral do Vulkan ou confira a lista de Recursos.
Componentes do Vulkan
O suporte ao Vulkan inclui os seguintes componentes.
Figura 1. Componentes do Vulkan
Nome do componente | Provedor | Descrição |
---|---|---|
Camadas de validação do Vulkan | Android (no NDK) | Bibliotecas usadas durante o desenvolvimento de apps Vulkan para encontrar erros no uso da API Vulkan por um app. Depois que os erros de uso da API forem encontrados, essas bibliotecas deverão ser removidas. |
Tempo de execução do Vulkan | Android | Uma biblioteca nativa, libvulkan.so , que fornece uma API
Vulkan nativa.A maior parte da funcionalidade do Vulkan Runtime é implementada por um driver fornecido pelo fornecedor da GPU. O tempo de execução do Vulkan envolve o driver, oferece recursos de interceptação de API (para depuração e outras ferramentas de desenvolvedor) e gerencia a interação entre o driver e as dependências da plataforma. |
Driver do Vulkan | SoC | Mapeia a API do Vulkan para comandos e interações da GPU específicos do hardware com o driver de gráficos do kernel. |
Componentes modificados
O BufferQueue e o Gralloc são compatíveis com o Vulkan:
- BufferQueue. Outros valores de enumeração e métodos em
BufferQueue e a interface
ANativeWindow
permitem que o ambiente de execução do Vulkan se conecte ao BufferQueue porANativeWindow
. - Gralloc. Uma interface opcional permite que o Gralloc descubra se um determinado formato pode ser usado para uma combinação específica de produtor/consumidor sem alocar um buffer.
Para detalhes sobre esses componentes, consulte
BufferQueue e
gralloc. Para mais detalhes sobre ANativeWindow
, consulte
EGLSurfaces e OpenGL
ES).
Recursos
Use os seguintes recursos para saber mais sobre o Vulkan:
-
Vulkan Loader (
libvulkan.so
) emplatform/frameworks/native/vulkan
. Contém o carregador do Vulkan do Android, além de algumas ferramentas relacionadas ao Vulkan úteis para desenvolvedores de plataforma. - Implementação do Vulkan. Destinado a IHVs de GPU que escrevem drivers Vulkan para Android e OEMs que integram esses drivers para dispositivos específicos. Ele descreve como um driver do Vulkan interage com o sistema, como as ferramentas específicas da GPU devem ser instaladas e os requisitos de implementação específicos do Android.
- Guia da API de gráficos Vulkan. Inclui informações sobre como começar a usar o Vulkan em apps Android, as diretrizes de design do Vulkan no Android, o uso de compiladores de sombreador do Vulkan e o uso de camadas de validação para ajudar a garantir a estabilidade em apps que usam o Vulkan.
- Vulkan News (link em inglês). Cobertura de eventos, patches, tutoriais e outros artigos de notícias relacionados ao Vulkan.