Vulkan

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 Sprache SPIR-V Binary Intermediate .

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. Einzelheiten dazu, wie ein Vulkan-Treiber mit dem System interagiert, wie GPU-spezifische Tools installiert werden sollten, und Android-spezifische Anforderungen finden Sie unter Implementierung von Vulkan.

Anwendungsentwickler verwenden Vulkan, um Apps zu erstellen, die Befehle auf der GPU mit deutlich reduziertem Overhead ausführen. Vulkan bietet im Vergleich zu EGL und GLES auch eine direktere Zuordnung zu den Fähigkeiten, die in aktueller Grafikhardware zu finden sind, wodurch die Möglichkeiten für Treiberfehler minimiert und die Testzeit für Entwickler verkürzt werden.

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.

Vulkan-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-Nutzungsfehler gefunden wurden, sollten diese Bibliotheken entfernt werden.
Vulkan-Laufzeit 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-Anbieter bereitgestellt wird. Vulkan Runtime umschließt den Treiber, bietet API-Abfangfunktionen (für Debugging und andere Entwicklertools) und verwaltet die Interaktion zwischen dem Treiber und den Plattformabhängigkeiten.
Vulkan-Treiber 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 Vulkan Runtime, sich über ANativeWindow mit BufferQueue zu verbinden.
  • Gralloc. Eine optionale Schnittstelle lässt Gralloc erkennen, ob ein bestimmtes Format für eine bestimmte Erzeuger/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 ) unter platform/frameworks/native/vulkan . Enthält den Vulkan-Loader von Android sowie einige Vulkan-bezogene Tools, die für Plattformentwickler nützlich sind.
  • Vulkan implementieren . Vorgesehen für GPU-IHVs, die Vulkan-Treiber für Android und OEMs schreiben, die diese Treiber für bestimmte Geräte integrieren. Es beschreibt, wie ein Vulkan-Treiber mit dem System interagiert, wie GPU-spezifische Tools installiert werden sollten und Android-spezifische Implementierungsanforderungen.
  • Vulkan Graphics API-Leitfaden . Enthält Informationen zu den ersten Schritten bei der Verwendung von Vulkan in Android-Apps, der Vulkan-Designrichtlinienplattform von Android, der Verwendung von Vulkans Shader-Compilern und der Verwendung von Validierungsebenen, um die Stabilität in Apps sicherzustellen, die Vulkan verwenden.
  • Vulkan-News . Umfasst Ereignisse, Patches, Tutorials und weitere Vulkan-bezogene Nachrichtenartikel.