WebGPU für Android

Die Android Jetpack-WebGPU-Bibliothek bietet idiomatische Kotlin-Bindungen für den WebGPU-Standard und ermöglicht so leistungsstarke, moderne 3D-Grafiken und Rechenfunktionen in Ihren Android-Anwendungen.

WebGPU ist der Nachfolger von WebGL und der geistige Nachkomme von OpenGL. Es wurde von Grund auf neu entwickelt, um die Funktionsweise moderner GPUs widerzuspiegeln und GPU-Funktionen plattformübergreifend, sicher und ergonomisch verfügbar zu machen.

Warum WebGPU?

  • Optimierte Nutzerfreundlichkeit: Vulkan ist die primäre Low-Level-Grafik-API auf Android. WebGPU bietet eine moderne API auf höherer Ebene, die einfacher zu verwenden und deutlich weniger ausführlich als Vulkan ist.
  • Batching und Serialisierung: WebGPU zeichnet mehrere Befehle in Command Buffers auf, was Teil des Designs ist, um die Protokollkommunikation zu minimieren. Außerdem wird so die Notwendigkeit minimiert, externe Methoden aufzurufen, wenn Kotlin-Bindungen verwendet werden.
  • Universelle Unterstützung: WebGPU-Shadercode (WGSL) kann direkt für WebGPU-Implementierungen auf verschiedenen Plattformen, einschließlich des Webs, freigegeben werden.
  • Optimized Compute: Durch die nahtlose, kopierfreie gemeinsame Nutzung von Puffern zwischen Rechen- und Grafikaufgaben wird die Leistung gesteigert und die Entwicklung im Vergleich zu Legacy-APIs vereinfacht.

Zielgruppe

Diese Bibliothek wurde für die Entwicklung leistungsstarker Anwendungen entwickelt, die direkten Zugriff auf die GPU erfordern:

  • Filter für die Bild- und Videoverarbeitung
  • Datenvisualisierung
  • Inferenz für maschinelles Lernen
  • Spiele und Simulationen

Nicht-Ziele: Dies ist eine Grafik-API, keine Game-Engine. Sie sind für die Verwaltung Ihres eigenen Renderings, Ihrer Kameramatrizen und Ihres Szenengraphen verantwortlich.

Wichtige WebGPU-Konzepte

Es ist wichtig, die grundlegenden WebGPU-Objekte und ihre Interaktion zu verstehen, um WebGPU-Anwendungen zu entwickeln.

Konzept

Beschreibung

Instanz

Der Einstiegspunkt für WebGPU, der Zugriff auf Adapter und Oberflächen ermöglicht

Adapter

Stellt eine bestimmte GPU auf dem Gerät dar.

Gerät

Ihre logische Verbindung zur GPU, auf der Ressourcen erstellt werden

Warteschlange

Der Mechanismus, der zum Senden von Befehlen an die GPU verwendet wird

Shader-Modul

Ihr GPU-Code, geschrieben in der WebGPU Shading Language (WGSL)

Pipelines

Objekte, die den gesamten GPU-Status (Shader, Blending) für eine Aufgabe beschreiben

Bind Groups

Verknüpft Datenpuffer (z. B. Texturen) mit Shadern

Command Encoder

Ein Objekt, mit dem eine Sequenz von GPU-Befehlen in einen Befehlspuffer erstellt wird.