Vulkan

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

I fornitori di SoC (System on chip), come i fornitori di hardware indipendenti (IHV) per GPU, possono scrivere driver Vulkan per Android. Gli OEM devono integrare questi driver per dispositivi specifici. Per informazioni dettagliate su come un driver Vulkan interagisce con il sistema, su come installare gli strumenti specifici per la GPU e sui requisiti specifici per Android, consulta Implementazione di Vulkan.

Gli sviluppatori di applicazioni utilizzano Vulkan per creare app che ejecutano comandi sulla GPU con un overhead notevolmente ridotto. Vulkan offre inoltre una mappatura più diretta alle funzionalità presenti nell'hardware grafico attuale rispetto a EGL e GLES, riducendo al minimo le opportunità di bug dei driver e 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 del componente Fornitore Descrizione
Livelli di convalida Vulkan Android (nell'NDK) Librerie utilizzate durante lo sviluppo di app Vulkan per trovare errori nell'uso dell'API Vulkan da parte di un'app. Una volta rilevati errori di utilizzo dell'API, queste librerie devono essere rimosse.
Runtime Vulkan Android Una libreria nativa, libvulkan.so, che fornisce un'API Vulkan nativa.

La maggior parte delle funzionalità di Vulkan Runtime è implementata da un driver fornito dal fornitore della GPU. Vulkan Runtime avvolge il 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 ai comandi e alle interazioni della GPU specifici dell'hardware con il driver grafico del kernel.

Componenti modificati

BufferQueue e Gralloc supportano Vulkan:

  • BufferQueue. Valori ed enumerazioni aggiuntivi in BufferQueue e nell'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 determinata combinazione produttore/consumatore senza allocare un buffer.

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

Risorse

Per scoprire di più su Vulkan, utilizza le seguenti risorse:

  • Vulkan Loader (libvulkan.so) alla versione platform/frameworks/native/vulkan. Contiene il caricatore Vulkan di Android, nonché alcuni strumenti correlati a Vulkan utili per gli sviluppatori della piattaforma.
  • Implementazione di Vulkan. Destinato agli IHV GPU che scrivono driver Vulkan per Android e agli OEM che li integrano per dispositivi specifici. Descrive come un driver Vulkan interagisce con il sistema, come devono essere installati gli strumenti specifici per la GPU e i requisiti di implementazione specifici per Android.
  • Guida all'API Vulkan Graphics. Sono incluse informazioni su come iniziare a utilizzare Vulkan nelle app per Android, sulla piattaforma delle linee guida per la progettazione di Vulkan di Android, sull'utilizzo dei compilatori shader di Vulkan e sull'utilizzo dei livelli di convalida per contribuire a garantire la stabilità nelle app che utilizzano Vulkan.
  • Vulkan News. Copre eventi, patch, tutorial e altri articoli di notizie correlati a Vulkan.