Vulkan

O Android oferece suporte a Vulkan, uma API multiplataforma de baixa sobrecarga para gráficos 3D de alto desempenho. Assim como o OpenGL ES (GLES), a Vulkan oferece ferramentas para criar gráficos de alta qualidade em tempo real nos apps. As vantagens de usar a Vulkan incluem a redução da sobrecarga da CPU e suporte à SPIR-V linguagem intermediária binária.

Os fornecedores de sistemas em chip (SoC, na sigla em inglês), como os fornecedores independentes de hardware (IHVs, na sigla em inglês) de GPU, escrevem drivers da Vulkan para Android. Os OEMs integram esses drivers para dispositivos específicos. Para detalhes sobre como um driver da Vulkan interage com o sistema, como as ferramentas específicas da GPU são instaladas e os requisitos específicos do Android, consulte Implementar a Vulkan.

Os desenvolvedores de aplicativos usam a Vulkan para criar apps que executam comandos na GPU com uma sobrecarga significativamente reduzida. A 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 as oportunidades de bugs de driver e reduzindo o tempo de teste do desenvolvedor.

Para informações gerais sobre a Vulkan, consulte a visão geral da Vulkan ou a lista de recursos.

Componentes da Vulkan

O suporte à Vulkan inclui os seguintes componentes.

Componentes
do Vulkan

Figura 1. Componentes da Vulkan

Nome do componente Provedor Descrição
Camadas de validação da Vulkan Android (no NDK) Bibliotecas usadas durante o desenvolvimento de apps da Vulkan para encontrar erros no uso da API Vulkan de um app. Depois que os erros de uso da API são encontrados, essas bibliotecas são removidas.
Tempo de execução da Vulkan Android Uma biblioteca nativa, libvulkan.so, que fornece uma API Vulkan nativa.

A maior parte da funcionalidade do tempo de execução da Vulkan é implementada por um driver fornecido pelo fornecedor da GPU. O tempo de execução da 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 da Vulkan SoC Mapeia a API Vulkan para comandos de GPU específicos do hardware e interações com o driver de gráficos do kernel.

Componentes modificados

O BufferQueue e o Gralloc oferecem suporte à Vulkan:

  • BufferQueue. Valores e métodos de enumeração adicionais no BufferQueue e a ANativeWindow interface permitem que o tempo de execução da Vulkan se conecte ao BufferQueue pelo ANativeWindow.
  • Gralloc. Uma interface opcional permite que o Gralloc descubra se um 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 a Vulkan:

  • Carregador da Vulkan (libvulkan.so) em platform/frameworks/native/vulkan. Contém o carregador da Vulkan do Android, bem como algumas ferramentas relacionadas à Vulkan úteis para desenvolvedores de plataforma.
  • Implementar a Vulkan. Destinado a IHVs de GPU que escrevem drivers da Vulkan para Android e OEMs que integram esses drivers para dispositivos específicos. Ele descreve como um driver da Vulkan interage com o sistema, como as ferramentas específicas da GPU precisam ser instaladas e os requisitos de implementação específicos do Android.
  • Guia da API de gráficos da Vulkan. Inclui informações sobre como começar a usar a Vulkan em apps Android, as diretrizes de design da Vulkan do Android, o uso dos compiladores de sombreador da Vulkan e o uso de camadas de validação para ajudar a garantir a estabilidade em apps que usam a Vulkan.
  • Notícias da Vulkan. Abrange eventos, patches, tutoriais e mais artigos de notícias relacionados à Vulkan.