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 (IHV), 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 i 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 w celu 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ę karty graficznej. 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 przydzielenia 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 platformie 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. Ta funkcja jest przeznaczona dla IHV GPU, które tworzą 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.