Vulcano

O Android suporta Vulkan , uma API multiplataforma de baixa sobrecarga para gráficos 3D de alto desempenho. Assim como o OpenGL ES (GLES) , o Vulkan fornece ferramentas para criar gráficos de alta qualidade em tempo real em aplicativos. As vantagens de usar o Vulkan incluem reduções na sobrecarga da CPU e suporte para a linguagem SPIR-V Binary Intermediate .

Fornecedores de sistema em chip (SoCs), como fornecedores de hardware independentes de GPU (IHVs), podem escrever drivers Vulkan para Android. Os OEMs precisam integrar esses drivers para dispositivos específicos. Para obter detalhes sobre como um driver Vulkan interage com o sistema, como as ferramentas específicas da GPU devem ser instaladas e os requisitos específicos do Android, consulte Implementando o Vulkan.

Os desenvolvedores de aplicativos usam Vulkan para criar aplicativos que executam comandos na GPU com sobrecarga significativamente reduzida. Vulkan também fornece um mapeamento mais direto dos recursos encontrados no hardware gráfico atual em comparação com EGL e GLES, minimizando oportunidades para bugs de driver e reduzindo o tempo de teste do desenvolvedor.

Para obter informações gerais sobre o Vulkan, consulte Visão geral do Vulkan ou consulte a lista de recursos .

Componentes Vulkan

O suporte Vulkan inclui os seguintes componentes.

Componentes Vulkan

Figura 1. Componentes Vulkan

Nome do componente Fornecedor Descrição
Camadas de validação Vulkan Android (no NDK) Bibliotecas usadas durante o desenvolvimento de aplicativos Vulkan para encontrar erros no uso da API Vulkan por um aplicativo. Depois que erros de uso da API forem encontrados, essas bibliotecas deverão ser removidas.
Tempo de execução 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 Vulkan Runtime envolve o driver, fornece 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.
Motorista Vulkan SoC Mapeia a API Vulkan em comandos de GPU específicos de hardware e interações com o driver gráfico do kernel.

Componentes modificados

BufferQueue e Gralloc suportam Vulkan:

  • BufferQueue. Valores e métodos enum adicionais em BufferQueue e na interface ANativeWindow permitem que o Vulkan Runtime se conecte a BufferQueue por meio de ANativeWindow .
  • Graloc. Uma interface opcional permite que Gralloc descubra se um determinado formato pode ser usado para uma combinação específica de produtor/consumidor sem alocar um buffer.

Para obter detalhes sobre esses componentes, consulte BufferQueue e gralloc . Para obter detalhes sobre ANativeWindow , consulte EGLSurfaces e OpenGL ES ).

Recursos

Use os seguintes recursos para aprender mais sobre o Vulkan:

  • Carregador Vulkan ( libvulkan.so ) em platform/frameworks/native/vulkan . Contém o carregador Vulkan do Android, bem como algumas ferramentas relacionadas ao Vulkan úteis para desenvolvedores de plataformas.
  • Implementando 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 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 gráfica Vulkan . Inclui informações sobre como começar a usar o Vulkan em aplicativos Android, a plataforma de diretrizes de design Vulkan do Android, o uso dos compiladores de shader do Vulkan e o uso de camadas de validação para ajudar a garantir a estabilidade em aplicativos que usam o Vulkan.
  • Notícias Vulkan . Abrange eventos, patches, tutoriais e mais artigos de notícias relacionados ao Vulkan.