Android obsługuje Vulkan, czyli interfejs API o niskim obciążeniu, który umożliwia tworzenie wydajnej grafiki 3D na różnych platformach. Podobnie jak OpenGL ES (GLES), Vulkan udostępnia narzędzia do tworzenia wysokiej jakości grafiki w czasie rzeczywistym w aplikacjach. Zalety korzystania z Vulkana to m.in. zmniejszenie obciążenia procesora i obsługa języka SPIR-V Binary Intermediate.
Dostawcy systemów na chipie (SoC), np. niezależni dostawcy sprzętu z procesorem graficznym, mogą pisać sterowniki Vulkana na Androida. Producenci OEM muszą zintegrować te sterowniki z poszczególnymi urządzeniami. Szczegółowe informacje o tym, jak sterownik Vulkan współpracuje z systemem, jak instalować narzędzia związane z GPU oraz jakie są wymagania dotyczące Androida, znajdziesz w artykule Wdrażanie Vulkana.
Deweloperzy aplikacji używają Vulkana do tworzenia aplikacji, które wykonują polecenia na karcie graficznej z znacznie zmniejszonym obciążeniem. Vulkan zapewnia też bardziej bezpośrednie mapowanie możliwości obecnego sprzętu do przetwarzania grafiki w porównaniu z EGL i GLES, co minimalizuje ryzyko wystąpienia błędów w sterowniku i skraca czas testowania przez programistów.
Ogólne informacje o Vulkan znajdziesz w artykule Vulkan – omówienie lub na liście Materiały dodatkowe.
Komponenty Vulkan
Obsługa Vulkan obejmuje te komponenty:
Rysunek 1. Komponenty Vulkan
Nazwa komponentu | Dostawca | Opis |
---|---|---|
Warstwy walidacji Vulkan | Android (w NDK) | Biblioteki używane podczas tworzenia aplikacji Vulkan do znajdowania błędów w używaniu interfejsu Vulkan API przez aplikację. Po wykryciu błędów związanych z używaniem interfejsu API należy usunąć te biblioteki. |
Środowisko wykonawcze Vulkan | Android | Natywna biblioteka libvulkan.so , która udostępnia natywny interfejs Vulkan API.Większość funkcji Vulkan Runtime jest implementowana przez sterownik dostarczony przez dostawcę GPU. Vulkan Runtime otacza sterownik, zapewnia funkcje przechwytywania interfejsu API (do debugowania i innych narzędzi dla deweloperów) oraz zarządza interakcją między sterownikiem a zależnościami platformy. |
Sterownik Vulkan | SOC | Mapuje interfejs Vulkan API na polecenia i interakcje procesora graficznego związane ze sprzętem za pomocą sterownika jądra. |
Zmodyfikowane komponenty
BufferQueue i Gralloc obsługują Vulkan:
- BufferQueue. Dodatkowe wartości i metody w interfejsie BufferQueue oraz
ANativeWindow
umożliwiają środowisku wykonawczemu Vulkan nawiązywanie połączenia z BufferQueue za pomocą interfejsuANativeWindow
. - Gralloc. Opcjonalny interfejs pozwala Grallocowi wykryć, czy dany format może być używany w przypadku konkretnej kombinacji producenta/konsumenta bez przydzielania bufora.
Szczegółowe informacje o tych komponentach znajdziesz w artykule BufferQueue i gralloc. Szczegółowe informacje o ANativeWindow
znajdziesz w artykule (EGLSurfaces i OpenGL ES).
Materiały
Aby dowiedzieć się więcej o Vulkan, skorzystaj z tych materiałów:
-
Vulkan Loader (
libvulkan.so
) na stronieplatform/frameworks/native/vulkan
. Zawiera ładowarkę Vulkana na Androida, a także niektóre narzędzia związane z Vulkanem, które są przydatne dla deweloperów platform. - Wdrażanie Vulkana. Przeznaczone dla IHV dostawców GPU, którzy piszą sterowniki Vulkana na Androida, oraz dla producentów OEM, którzy integrują te sterowniki na konkretnych urządzeniach. Opisuje on sposób interakcji sterownika Vulkan z systemem, sposób instalowania narzędzi związanych z procesorem graficznym oraz wymagania dotyczące implementacji na Androidzie.
- Przewodnik po interfejsie Vulkan Graphics API. Zawiera informacje o tym, jak zacząć korzystać z platformy Vulkan w aplikacjach na Androida, jak używać kompilatorów shaderów Vulkan oraz jak stosować warstwy weryfikacji, aby zapewnić stabilność aplikacji korzystających z platformy Vulkan.
- Vulkan News. Zawiera wydarzenia, poprawki, samouczki i inne artykuły dotyczące Vulkana.