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 em tempo real em apps. As vantagens do uso do Vulkan incluem reduções na sobrecarga da CPU e suporte à linguagem SPIR-V Binary Intermediate (link em inglês).
Fornecedores de system on chip (SoCs), como fornecedores de hardware independentes de GPU (IHVs), podem escrever drivers do Vulkan para Android. Os OEMs precisam integrar esses drivers para dispositivos específicos. Para saber mais sobre como um driver do Vulkan interage com o sistema, como as ferramentas específicas da GPU devem ser instaladas e os requisitos específicos do Android, consulte Como implementar o 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 o EGL e o GLES, minimizando as oportunidades de bugs do 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 precisarão ser removidas. |
Ambiente de execução do Vulkan | Android | Uma biblioteca nativa, libvulkan.so , que fornece uma API
Vulkan nativa.A maioria da funcionalidade do Vulkan Runtime é implementada por um driver fornecido pelo fornecedor da GPU. O Vulkan Runtime envolve o driver, oferece recursos de intercepçã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 Vulkan para comandos e interações de GPU específicos de hardware com o driver de gráficos do kernel. |
Componentes modificados
BufferQueue e Gralloc oferecem suporte a Vulkan:
- BufferQueue. Outros valores e métodos de enumeração em
BufferQueue e a interface
ANativeWindow
permitem que o Vulkan Runtime 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 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 plataformas. - Implementação do Vulkan. Destinado a IHVs de GPU que programam 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, a plataforma de diretrizes de design do Vulkan do 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.
- Notícias sobre o Vulkan. Abrange eventos, patches, tutoriais e mais artigos de notícias relacionados ao Vulkan.