Vulkan

Android supporta Vulkan, un'API multipiattaforma a basso overhead per la grafica 3D ad alte prestazioni. Come OpenGL ES (GLES), Vulkan fornisce strumenti per la creazione di grafica in tempo reale di alta qualità nelle app. I vantaggi dell'utilizzo di Vulkan includono un overhead della CPU ridotto e il supporto per il linguaggio intermedio binario SPIR-V.

I fornitori di system-on-chip (SoC), come i fornitori di hardware indipendenti dalla GPU (IHV), scrivono i driver Vulkan per Android. Gli OEM integrano questi driver per dispositivi specifici. Per informazioni dettagliate su come un driver Vulkan interagisce con il sistema, su come vengono installati gli strumenti specifici della GPU e sui requisiti specifici di Android , vedi Implementare Vulkan.

Gli sviluppatori di applicazioni utilizzano Vulkan per creare app che eseguono comandi sulla GPU con un overhead notevolmente ridotto. Vulkan also fornisce una mappatura più diretta delle funzionalità presenti nell'hardware grafico attuale rispetto a EGL e GLES, riducendo al minimo le opportunità di bug dei driver e riducendo i tempi di test degli sviluppatori.

Per informazioni generali su Vulkan, consulta la panoramica di Vulkan o l'elenco delle risorse.

Componenti Vulkan

Il supporto di Vulkan include i seguenti componenti.

Componenti
Vulkan

Figura 1. Componenti Vulkan

Nome componente Provider Descrizione
Livelli di convalida Vulkan Android (in NDK) Librerie utilizzate durante lo sviluppo di app Vulkan per trovare errori nell'utilizzo dell'API Vulkan da parte di un'app. Una volta rilevati gli errori di utilizzo dell'API, queste librerie vengono rimosse.
Runtime Vulkan Android Una libreria nativa, libvulkan.so, che fornisce un'API Vulkan nativa.

La maggior parte delle funzionalità di Vulkan Runtime viene implementata da un driver fornito dal fornitore della GPU. Vulkan Runtime esegue il wrapping del driver, fornisce funzionalità di intercettazione dell'API (per il debug e altri strumenti per sviluppatori) e gestisce l'interazione tra il driver e le dipendenze della piattaforma.
Driver Vulkan SoC Mappa l'API Vulkan sui comandi GPU specifici dell'hardware e sulle interazioni con il driver grafico del kernel.

Componenti modificati

BufferQueue e Gralloc supportano Vulkan:

  • BufferQueue. Valori enum e metodi aggiuntivi in BufferQueue e l'interfaccia ANativeWindow consentono a Vulkan Runtime di connettersi a BufferQueue tramite ANativeWindow.
  • Gralloc. Un'interfaccia facoltativa consente a Gralloc di scoprire se un determinato formato può essere utilizzato per una particolare combinazione produttore/consumatore senza allocare un buffer.

Per informazioni dettagliate su questi componenti, vedi BufferQueue e gralloc. Per informazioni dettagliate su ANativeWindow, vedi EGLSurfaces e OpenGL ES.

Risorse

Utilizza le seguenti risorse per saperne di più su Vulkan:

  • Caricatore Vulkan (libvulkan.so) in platform/frameworks/native/vulkan. Contiene il caricatore Vulkan di Android, nonché alcuni strumenti correlati a Vulkan utili per gli sviluppatori di piattaforme.
  • Implementare Vulkan. Destinato ai fornitori di hardware indipendenti dalla GPU che scrivono driver Vulkan per Android e agli OEM che integrano questi driver per dispositivi specifici. Descrive come un driver Vulkan interagisce con il sistema, come devono essere installati gli strumenti specifici della GPU e i requisiti di implementazione specifici di Android.
  • Guida all'API grafica Vulkan. Include informazioni su come iniziare a utilizzare Vulkan nelle app Android, sulla piattaforma delle linee guida di progettazione Vulkan di Android, sull'utilizzo dei compilatori di shader di Vulkan e sull'utilizzo dei livelli di convalida per garantire la stabilità nelle app che utilizzano Vulkan.
  • Notizie su Vulkan. Include eventi, patch, tutorial e altri articoli di notizie relativi a Vulkan.