Vulkan

Android supporta Vulkan , un'API multipiattaforma a basso costo per 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 la riduzione del sovraccarico della CPU e il supporto per il linguaggio SPIR-V Binary Intermediate .

I fornitori di sistemi su chip (SoC) come i fornitori di hardware indipendenti dalla GPU (IHV) possono scrivere driver Vulkan per Android. Gli OEM devono integrare questi driver per dispositivi specifici. Per dettagli 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, vedere Implementazione di Vulkan.

Gli sviluppatori di applicazioni utilizzano Vulkan per creare app che eseguono comandi sulla GPU con un sovraccarico notevolmente ridotto. Vulkan fornisce inoltre una mappatura più diretta delle funzionalità presenti nell'attuale hardware grafico 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, fare riferimento alla panoramica di Vulkan o consultare l'elenco delle risorse .

Componenti di Vulcano

Il supporto Vulkan include i seguenti componenti.

Componenti di Vulcano

Figura 1. Componenti Vulkan

Nome del componente Fornitore Descrizione
Livelli di convalida Vulkan Android (nell'NDK) Librerie utilizzate durante lo sviluppo delle 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 dovrebbero essere rimosse.
Runtime di Vulcano Androide 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 wrapper del driver, fornisce funzionalità di intercettazione API (per il debug e altri strumenti di sviluppo) e gestisce l'interazione tra il driver e le dipendenze della piattaforma.
Il pilota Vulcaniano SoC Mappa l'API Vulkan su comandi GPU specifici dell'hardware e interazioni con il driver grafico del kernel.

Componenti modificati

BufferQueue e Gralloc supportano Vulkan:

  • BufferQueue. Ulteriori valori enumerativi e metodi in BufferQueue e nell'interfaccia ANativeWindow consentono a Vulkan Runtime di connettersi a BufferQueue tramite ANativeWindow .
  • Gralloc. Un'interfaccia opzionale consente a Gralloc di scoprire se un dato formato può essere utilizzato per una particolare combinazione produttore/consumatore senza allocare un buffer.

Per dettagli su questi componenti, vedere BufferQueue e gralloc . Per dettagli su ANativeWindow , vedere EGLSurfaces e OpenGL ES ).

Risorse

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

  • Vulkan Loader ( libvulkan.so ) su platform/frameworks/native/vulkan . Contiene il caricatore Vulkan di Android, nonché alcuni strumenti relativi a Vulkan utili agli sviluppatori della piattaforma.
  • Implementazione di Vulkan . Destinato agli IHV GPU che scrivono driver Vulkan per Android e agli OEM che integrano tali driver per dispositivi specifici. Descrive come un driver Vulkan interagisce con il sistema, come dovrebbero 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 shader di Vulkan e sull'utilizzo dei livelli di convalida per garantire la stabilità nelle app che utilizzano Vulkan.
  • Notizie Vulcaniane . Copre eventi, patch, tutorial e altri articoli di notizie relativi a Vulkan.