WebGPU na Androida

Biblioteka WebGPU Androida Jetpack zapewnia idiomatyczne powiązania Kotlin z standardem WebGPU, umożliwiając wysoką wydajność, nowoczesną grafikę 3D i możliwości obliczeniowe w aplikacjach na Androida.

WebGPU to następca WebGL i duchowy spadkobierca OpenGL. Został zaprojektowany od podstaw, aby odzwierciedlać sposób działania nowoczesnych procesorów graficznych i udostępniać ich możliwości w sposób bezpieczny, ergonomiczny i działający na różnych platformach.

Dlaczego WebGPU?

  • Uproszczona obsługa: Vulkan jest głównym interfejsem API grafiki niskiego poziomu na Androidzie. WebGPU to nowoczesny interfejs API wyższego poziomu, który jest łatwiejszy w użyciu i znacznie mniej złożony niż Vulkan.
  • Grupowanie i serializacja WebGPU rejestruje wiele poleceń w buforach poleceń, co jest częścią jego konstrukcji mającej na celu zminimalizowanie liczby komunikatów protokołu. Minimalizuje to też konieczność wywoływania metod zewnętrznych podczas korzystania z powiązań Kotlin.
  • Uniwersalna obsługa: kod shadera WebGPU (WGSL) można bezpośrednio udostępniać w implementacjach WebGPU na różnych platformach, w tym w internecie.
  • Zoptymalizowane obliczenia: bezproblemowe udostępnianie bufora bez kopiowania między zadaniami obliczeniowymi a graficznymi zwiększa wydajność i upraszcza programowanie w porównaniu ze starszymi interfejsami API.

Dla kogo jest przeznaczona ta biblioteka

Ta biblioteka jest przeznaczona do tworzenia aplikacji o wysokiej wydajności, które wymagają bezpośredniego dostępu do procesora graficznego:

  • Filtry przetwarzania obrazów i filmów
  • Wizualizacje danych
  • Wnioskowanie w uczeniu maszynowym
  • Gry i symulacje

Cele, których nie chcemy osiągnąć: to interfejs API grafiki, a nie silnik gry. Odpowiadasz za zarządzanie własną pętlą renderowania, macierzami kamery i grafem sceny.

Podstawowe pojęcia związane z WebGPU

Zrozumienie podstawowych obiektów WebGPU i sposobu ich interakcji jest niezbędne do tworzenia aplikacji w WebGPU.

Koncepcja

Opis

Instancja

Punkt wejścia do WebGPU, który zapewnia dostęp do adapterów i powierzchni.

Ładowarka

Reprezentuje konkretny procesor graficzny na urządzeniu.

Urządzenie

Połączenie logiczne z procesorem GPU, na którym tworzone są zasoby.

Kolejka

Mechanizm używany do przesyłania poleceń do procesora GPU

Shader Module

kod GPU napisany w języku cieniowania WebGPU (WGSL);

Pipelines

Obiekty opisujące cały stan procesora graficznego (shadery, mieszanie) dla zadania

Grupy powiązań

Powiązanie buforów danych (np. tekstur) z shaderami

Koder poleceń

Obiekt służący do tworzenia sekwencji poleceń GPU w buforze poleceń.