Vulkan

Android supporta Vulkan, un'API multipiattaforma a basso overhead per 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 Binary Intermediate.

I fornitori di system on chip (SoC), 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 devono essere installati gli strumenti specifici della GPU e sui requisiti specifici di Android, vedi Implementazione di Vulkan.

Gli sviluppatori di applicazioni utilizzano Vulkan per creare app che eseguono comandi sulla GPU con un overhead notevolmente ridotto. Vulkan fornisce anche 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 il tempo 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 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 esegue il wrapping del driver, fornisce funzionalità di intercettazione delle 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 su comandi e interazioni della GPU specifici dell'hardware con il driver grafico del kernel.

Componenti modificati

BufferQueue e Gralloc supportano Vulkan:

  • BufferQueue. Valori e metodi enum 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 scoprire di più su Vulkan:

  • Vulkan Loader (libvulkan.so) in platform/frameworks/native/vulkan. Contiene il caricatore Vulkan di Android, nonché alcuni strumenti correlati a Vulkan utili agli sviluppatori di piattaforme.
  • Implementazione di Vulkan. Destinato ai fornitori indipendenti di hardware 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 per la GPU e i requisiti di implementazione specifici per Android.
  • Guida all'API Vulkan Graphics. Include informazioni su come iniziare a utilizzare Vulkan nelle app per Android, sulle linee guida per la progettazione di Vulkan per la piattaforma Android, sull'utilizzo dei compilatori di shader di Vulkan e sull'utilizzo dei livelli di convalida per garantire la stabilità delle app che utilizzano Vulkan.
  • Vulkan News. Copre eventi, patch, tutorial e altri articoli di notizie relativi a Vulkan.