Google włącza renderowanie akcelerowane przez GPU dla aplikacji dla systemu Linux w swojej aplikacji Terminal na Androida – funkcja obecnie dostępna wyłącznie w Pixelu 10. To ulepszenie, będące częścią Androida 16 QPR2, wykorzystuje technologię Gfxstream do poprawy wydajności graficznej. Rozwój nastąpił po marcowym wprowadzeniu aplikacji Linux Terminal dla systemu operacyjnego Android. W swojej pierwotnej wersji aplikacja została zaprojektowana z myślą o wykorzystaniu technologii wirtualizacji, co pozwoliło na uruchomienie pełnoprawnych środowisk Linux na sprzęcie z systemem Android. Jednak wsparcie w momencie uruchomienia ograniczało się wyłącznie do programów wiersza poleceń, wykluczając korzystanie z aplikacji wymagających graficznego interfejsu użytkownika. Google zajmuje się teraz tym ograniczeniem w nadchodzącej aktualizacji Androida 16 QPR2, która rozszerzy możliwości aplikacji o graficzne programy dla komputerów stacjonarnych dla systemu Linux. Pomimo dodania obsługi aplikacji graficznych w systemie Android 16 QPR2, oczekuje się, że ich wydajność na większości urządzeń z Androidem będzie nieoptymalna. Obecna implementacja w aplikacji Linux Terminal zależy od programowego modułu renderującego znanego jako Lavapipe. Ten moduł renderujący wykorzystuje jednostkę centralną (CPU) urządzenia do obsługi operacji wymagających dużej ilości grafiki. Operacje te obejmują złożone obliczenia i rasteryzację, czyli proces przekształcania grafiki wektorowej na piksele wyświetlane na ekranie. Jednostki przetwarzania grafiki urządzenia (GPU) są specjalnie zaprojektowane do wykonywania tych zadań z większą szybkością i wydajnością niż procesor, tworząc wąskie gardło wydajności, gdy używany jest Lavapipe. Aby rozwiązać ten problem z wydajnością, Google integruje obsługę Gfxstream z aplikacją Terminal. Gfxstream to biblioteka do wirtualizacji grafiki zaprojektowana w celu wypełnienia luki pomiędzy maszyną wirtualną a sprzętem urządzenia hosta. Działa poprzez przekazywanie wywołań API grafiki z gościnnej maszyny wirtualnej z systemem Linux bezpośrednio do natywnego procesora graficznego hosta urządzenia z systemem Android. Proces ten umożliwia procesorowi graficznemu urządzenia obsługę zadań renderowania, umożliwiając w ten sposób akcelerację procesora graficznego w aplikacjach dla systemu Linux i omijając programowy moduł renderujący oparty na procesorze.
Użytkownicy Pixela 10 w końcu odetchnęli z trwającym tydzień koszmarem awarii aplikacji
Obecność tego nowego modułu renderującego została po raz pierwszy zidentyfikowana podczas analizy wersji 2509 Androida Canary z zeszłego miesiąca. W ustawieniach aplikacji Terminal odkryto nowe menu „Przyspieszenie grafiki”. Początkowo to menu przedstawiało jedynie przełącznik istniejącego oprogramowania renderującego. Głębsze badanie kodu aplikacji ujawniło dowody na istnienie drugiej, ukrytej opcji przeznaczonej dla nowego „renderera przyspieszanego przez GPU”. Późniejsze badanie kodu potwierdziło, że ten nowy moduł renderujący korzysta z technologii Gfxstream. Po wydaniu w zeszłym tygodniu Androida 16 QPR2 Beta 3 użytkownik Reddita Unlucky_Drive6363 odkrył, że na jego smartfonie Pixel 10 aktywnie włączono akcelerację GPU dla aplikacji dla systemu Linux. Jako dowód użytkownik przedstawił zrzut ekranu, na którym program linuksowy pomyślnie wykrył sterownik graficzny Vulkan telefonu. Potwierdzili również, że menu „Przyspieszenie grafiki” stało się widoczne w ustawieniach aplikacji Terminal, co oznacza, że ta funkcja jest już dostępna na urządzeniu. Dalsze badanie oprogramowania sprzętowego urządzenia wyjaśnia, dlaczego ta funkcja jest obecnie dostępna wyłącznie dla Pixela 10. Oprogramowanie tego konkretnego modelu zawiera plik nakładki, którego nie ma na innych telefonach Pixel z tą samą wersją Androida 16 QPR2 Beta 3. Ten plik nakładki zawiera instrukcje, które wyraźnie informują aplikację Terminal, aby włączyła obsługę Gfxstream. Nie jest jasne, dlaczego Gfxstream nie został włączony na innych urządzeniach Pixel, ponieważ technologia ta jest w zasadzie niezależna od sprzętu. Jako biblioteka przesyłania dalej API została zaprojektowana do działania niezależnie od podstawowego sprzętu GPU. Po włączeniu Gfxstream Pixel 10 może uruchamiać graficzne aplikacje komputerowe dla systemu Linux, używając do renderowania procesora graficznego zamiast procesora. Zastosowany w urządzeniu procesor graficzny Tensor G5, choć niekoniecznie jest wiodącym procesorem w zadaniach takich jak emulacja gier, znacznie lepiej radzi sobie z renderowaniem grafiki niż jakikolwiek mobilny procesor. Jako jedyne urządzenie mobilne obsługujące obecnie Gfxstream w terminalu Linux, Pixel 10 ma wyraźną przewagę pod względem zgodności aplikacji z systemem Linux w porównaniu do wszystkich innych urządzeń z Androidem. Wdrożenie obsługi Gfxstream nie jest jeszcze zakończone. Użytkownik Reddita poinformował, że wirtualna maszyna z Linuksem ma dostęp tylko do 47 ze 142 rozszerzeń Vulkan natywnie obsługiwanych przez Pixela 10. Zauważył też, że niektóre z dostępnych rozszerzeń nie działają poprawnie. Spowodowało to, że niektóre aplikacje działały gorzej przy akceleracji GPU niż w przypadku poprzedniego renderera programowego. Gfxstream ma zapewniać wydajność zbliżoną do natywnej, co sugeruje, że optymalizacja tej funkcji wymaga dodatkowej pracy.





