Android unterstützt Vulkan , eine plattformübergreifende API mit geringem Overhead für leistungsstarke 3D-Grafiken. Wie OpenGL ES (GLES) bietet Vulkan Tools zum Erstellen hochwertiger Echtzeitgrafiken in Apps. Zu den Vorteilen der Verwendung von Vulkan gehören die Reduzierung des CPU-Overheads und die Unterstützung der SPIR-V Binary Intermediate- Sprache.
System-on-Chip-Anbieter (SoCs) wie GPU-unabhängige Hardwareanbieter (IHVs) können Vulkan-Treiber für Android schreiben. OEMs müssen diese Treiber für bestimmte Geräte integrieren. Ausführliche Informationen zur Interaktion eines Vulkan-Treibers mit dem System, zur Installation von GPU-spezifischen Tools und zu Android-spezifischen Anforderungen finden Sie unter Implementieren von Vulkan.
Anwendungsentwickler verwenden Vulkan, um Apps zu erstellen, die Befehle auf der GPU mit erheblich reduziertem Overhead ausführen. Vulkan bietet auch eine direktere Zuordnung zu den Funktionen der aktuellen Grafikhardware im Vergleich zu EGL und GLES, wodurch die Möglichkeit von Treiberfehlern minimiert und die Testzeit für Entwickler verkürzt wird.
Allgemeine Informationen zu Vulkan finden Sie in der Vulkan-Übersicht oder in der Liste der Ressourcen .
Vulkan-Komponenten
Die Vulkan-Unterstützung umfasst die folgenden Komponenten.
Abbildung 1. Vulkan-Komponenten
Komponentenname | Anbieter | Beschreibung |
---|---|---|
Vulkan-Validierungsschichten | Android (im NDK) | Bibliotheken, die während der Entwicklung von Vulkan-Apps verwendet werden, um Fehler bei der Verwendung der Vulkan-API durch eine App zu finden. Nachdem API-Verwendungsfehler gefunden wurden, sollten diese Bibliotheken entfernt werden. |
Vulkan Runtime | Android | Eine native Bibliothek, libvulkan.so , die eine native Vulkan-API bereitstellt.Die meisten Funktionen von Vulkan Runtime werden von einem Treiber implementiert, der vom GPU-Hersteller bereitgestellt wird. Vulkan Runtime umschließt den Treiber, bietet API-Interception-Funktionen (zum Debuggen und für andere Entwicklertools) und verwaltet die Interaktion zwischen dem Treiber und den Plattformabhängigkeiten. |
Vulkan Fahrer | SoC | Ordnet die Vulkan-API hardwarespezifischen GPU-Befehlen und Interaktionen mit dem Kernel-Grafiktreiber zu. |
Modifizierte Komponenten
BufferQueue und Gralloc unterstützen Vulkan:
- BufferQueue. Zusätzliche Enum-Werte und -Methoden in BufferQueue und der
ANativeWindow
Schnittstelle ermöglichen es Vulkan Runtime, überANativeWindow
eine Verbindung zu BufferQueueANativeWindow
. - Gralloc. Über eine optionale Schnittstelle kann Gralloc ermitteln, ob ein bestimmtes Format für eine bestimmte Hersteller / Verbraucher-Kombination verwendet werden kann, ohne einen Puffer zuzuweisen.
Einzelheiten zu diesen Komponenten finden Sie unter BufferQueue und gralloc . Einzelheiten zu ANativeWindow
finden Sie unter EGLSurfaces und OpenGL ES .
Ressourcen
Verwenden Sie die folgenden Ressourcen, um mehr über Vulkan zu erfahren:
- Vulkan Loader (
libvulkan.so
) unterplatform/frameworks/native/vulkan
. Enthält den Vulkan-Loader von Android sowie einige Vulkan-bezogene Tools, die für Plattformentwickler nützlich sind. - Implementierung von Vulkan . Bestimmt für GPU-IHVs, die Vulkan-Treiber für Android und OEMs schreiben, die diese Treiber für bestimmte Geräte integrieren. Es wird beschrieben, wie ein Vulkan-Treiber mit dem System interagiert, wie GPU-spezifische Tools installiert werden sollten und Android-spezifische Implementierungsanforderungen.
- Vulkan Graphics API-Handbuch . Enthält Informationen zum Einstieg in die Verwendung von Vulkan in Android-Apps, zur Plattform für Vulkan-Designrichtlinien von Android, zur Verwendung der Vulkan-Shader-Compiler und zur Verwendung von Validierungsebenen, um die Stabilität von Apps mit Vulkan zu gewährleisten.
- Vulkan Nachrichten . Behandelt Ereignisse, Patches, Tutorials und weitere Vulkan-bezogene Nachrichtenartikel.