Erste Schritte mit Vulkan

In diesem Dokument werden die ersten Schritte mit der Vulkan-Grafikbibliothek beschrieben. Dazu musst du die Khronos©-Beispiel-App herunterladen, kompilieren und ausführen.

Voraussetzungen

Prüfen Sie zuerst, ob Sie die richtige Hardware- und Plattformversion vorbereitet haben. Verwende ein Gerät oder einen Emulator, der Vulkan mit Android 7.0 (Nougat) bzw. API-Level 24 oder höher unterstützt.

Sie können Ihre Android-Version überprüfen, indem Sie das Menü Einstellungen öffnen und Über das Telefon > Android-Version auswählen. Nachdem Sie sich vergewissert haben, dass Sie die richtige Hardware- und Plattformversion eingerichtet haben, können Sie die erforderliche Software herunterladen.

Herunterladen

Bevor Sie beginnen, müssen Sie verschiedene Tools und weitere Software herunterladen. Auf einem Windows-Host wird empfohlen, für Tools und Quellcode eine tiefe Dateipfadhierarchie zu vermeiden. Dadurch sollen die Dateipfadbeschränkungen bei einigen Windows-Betriebssystemversionen umgangen werden.

  1. Wenn Sie Android Studio noch nicht haben, laden Sie es herunter. Dazu gehört auch das neueste Android SDK.
  2. Installieren Sie den NDK und CMake aus Android Studio oder laden Sie sie separat herunter und installieren Sie sie.
  3. Erstellen Sie das Hello JNI-Beispiel und führen Sie es aus, damit Android Studio ordnungsgemäß funktioniert.
  4. Installieren Sie Python3 und andere in build.md aufgeführte Komponenten für Ihre Hostplattform.

Importieren

In diesem Abschnitt laden Sie das Beispiel-Repository Khronos© Vulkan© herunter, generieren ein Android-Gradle-Projekt und öffnen es dann in der Android Studio IDE.

  1. Legen Sie die folgenden Umgebungsvariablen fest:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. Fügen Sie CMake in den $PATH ein, mit dem Android-Build-Skripts generiert werden:
    export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
    
  3. Öffnen Sie ein Terminal und laden Sie den Quellcode in Ihr Entwicklungsverzeichnis herunter:
    cd dev-directory
    git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
    
  4. Folgen Sie dieser Anleitung (von Build.md), um das Android-Beispielprojekt zu generieren:
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. Öffnen Sie Android Studio. Wählen Sie File > Open (Datei > Öffnen) und dann Vulkan-Samples/build/android_gradle/build.gradle aus. Nachdem Android Studio das Projekt geladen hat, sollte in etwa Folgendes angezeigt werden:
    Beispielprojekt wird in Studio importiert.

    Abbildung 1: Das Beispielprojekt in Android Studio.

Kompilieren

Alle Beispiele in diesem Repository sind in einem Android-Projekt organisiert. Führen Sie einen der folgenden Schritte aus, um das Projekt zu kompilieren:

  • Um nur die Quellen zu kompilieren, verwenden Sie das Menü Build > Make Project (Erstellen > Projekt erstellen) oder drücken Sie die Tastenkombination Strg + F9.
  • Wählen Sie zum Generieren des Beispiel-APKs das Menü Build > Build Bundle(s)/APK(s) > Build APK(s) aus.

Die Meldung über den erfolgreichen Build sollte im Fenster Build von Android Studio angezeigt werden. Falls Fehler auftreten, beheben Sie diese und kompilieren Sie sie neu.

Beispielprojekt mit Studio wird kompiliert.

Abbildung 2: Ein erfolgreicher Beispiel-Build.

Ausführen

Prüfen Sie vor dem Ausführen des Beispielprojekts, ob Android Studio Ihr verbundenes Vulkan-Gerät oder Android-Emulator erkennt. Die Ausgabe sollte in etwa so aussehen:

Das Testgerät wird mit Studio verbunden.

Abbildung 3: Verbinden Sie das Testgerät mit Android Studio.

So führen Sie das Projekt aus:

  1. Wählen Sie Run > Run vulkan_sample aus oder klicken Sie in der Symbolleiste auf die Schaltfläche „Run“ (Ausführen) und warten Sie, bis das Beispiel auf dem verbundenen Gerät installiert wurde und gestartet wird.
  2. Autorisieren Sie auf dem verbundenen Android-Gerät die erforderlichen Zugriffsanfragen.
    • Aktivieren Sie Zugriff zum Verwalten aller Dateien zulassen und tippen Sie dann auf den Pfeil Zurück, um zum Beispiel-Hauptstartbildschirm zurückzukehren.
    • Gewähren Sie dem Laufwerk Zugriff:
      die Zugriff auf das Laufwerk zulässt.

      Abbildung 4: Aktivieren Sie den Zugriff auf das Laufwerk.

  3. Sie sollten den Beispielbildschirm für das Hauptmenü sehen, der in etwa so aussieht:
    Beispiel-Hauptmenü.

    Abbildung 5: Beispiel für ein Hauptmenü

  4. Sehen Sie sich die Beispielliste an und wählen Sie einige aus. Wenn Sie die Vulkan-Entwicklung noch nicht so lange kennen, können Sie mit API-Beispielen beginnen. Wenn Sie beispielsweise auf „Hello Triangle“ tippen, sollte ein gerendertes Dreieck ähnlich dem folgenden angezeigt werden:
    Dreieck

    Abbildung 6: „Hello Triange“-Beispiel.

Ihr Entwicklungssystem ist jetzt so eingerichtet, dass Beispiele auf Ihrem Testgerät ausgeführt werden.

Vulkan Samples werden für verschiedene Betriebssysteme entwickelt, unter anderem für Computer und Mobilgeräte. Einige Beispiele unter Leistung, Erweiterungen und Tools sind möglicherweise instabil und stürzen auf Ihrem Gerät ab. Dies kann verschiedene Gründe haben, z. B.:

  • Die Vulkan-Funktionen wurden nicht für Android entwickelt.
  • Deine Version des Android-Betriebssystems wird nicht unterstützt.
  • Die GPU-Kapazität Ihrer Hardwareplattform.

Entdecken

Der Java-Abschnitt des Vulkan-Beispiels stammt aus der Klasse NativeActivity. Sie übergibt typische Ereignisse im Anwendungslebenszyklus wie das Erstellen, Starten, Beenden und Löschen von Anwendungen an den C/C++-Code. Der Abschnitt C/C++ des Beispiels enthält ein Beispiel-Framework, das die Funktion zum Wechseln von Unterbeispielen während der Laufzeit implementiert. Grundsätzlich durchlaufen Android-Systemereignisse und -nachrichten den folgenden Pfad, um zum Vulkan-Code der Beispiel-App zu gelangen:

  • Java-Abschnitt „NativeSampleActivity
  • NativeSampleActivity C-/C++-Abschnitt
  • android_native_glue-Code
  • android_main
  • Beispiel-Framework
  • Code des einzelnen untergeordneten Beispiels

android_main ist die Brücke zwischen NativeSampleActivity und dem App-Code. Dies kann der Ausgangspunkt für die Ausführung des Beispielcodes sein. Wenn Sie sich nur auf die Vulkan-spezifischen Quellen konzentrieren möchten, können Sie sich den Code unter Vulkan_Samples\samples ansehen. Er enthält Folgendes:

  • Beispiele für die Kategorie „api“.
  • Die Kategorie „Leistung“ ist Beispiele.
  • Beispiele für die Kategorie „Erweiterungen“
  • Die „Tooling“-Beispiele.

Die Vulkan_Samples\shaders sind das Zuhause für alle Shader.

Sie können sich die Beispiele der Kategorie „API“ ansehen, um sich mit der grundlegenden Verwendung von Vulkan und dem Beispiel-Framework vertraut zu machen. Anschließend gelangen Sie zu den Beispielen der Kategorien „Leistung“ und „Erweiterungen“. Für Shader-Code können Sie die Projektansicht in Android Studio verwenden.

Dreieck-Shader.

Abbildung 7: Shader mit Studio entdecken.

Weitere Informationen

Für die Vulkan API gibt es schon mehrere Versionen, deshalb ist sie reifer geworden. Der Standard-Ausschuss von Vulkan und die Vulkan-Community haben umfangreiches Material-Material erstellt, in dem die Nutzung und Best Practices der API demonstriert werden. Die folgende Liste enthält einige Ressourcen für die Entwicklung von Vulkan-Anwendungen:

  • Vulkan-Spezifikation Die Khronos Group pflegt die Vulkan-Spezifikation. Die vollständige Spezifikation, Schulungen, Leitfäden und Anleitungen finden Sie auf der Vulkan-Startseite.

  • Validierungsebenen: Validierungsebenen sind für die Anwendungsentwicklung unerlässlich. Weitere Informationen finden Sie in der Dokumentation zu Vulkan-Validierungsebenen unter Android.

  • Shaderc Der Shaderc-Code im NDK ist dem Shaderc-Repository nachgeschaltet. Die Nutzungsdokumentation und eine Anleitung zum Abrufen der neuesten Version finden Sie unter Shader-Compiler.