Dynamiczny interfejs wydajności Androida (ADPF) to potężne narzędzie Google przeznaczone dla deweloperów, którzy chcą optymalizować wydajność swoich aplikacji. Za pomocą interfejsów API do pomiaru temperatury aplikacja ADPF udostępnia informacje o stanie termicznym urządzenia w czasie rzeczywistym. Są one wykorzystywane do dostosowywania ustawień graficznych w aplikacji.
W ramach badań firma Arm opracowała wersję demonstracyjną z wykorzystaniem Unreal Engine i ADPF, aby sprawdzić, jak ADPF może służyć do optymalizacji wydajności gier.
ADPF monitoruje stan termiczny, dostosowując odpowiednio jakość grafiki w silniku gry.
W przypadku deweloperów celem jest umożliwienie użytkownikom dłuższego grania bez wpływu na rozgrywkę i zbyt dużego zużycia energii przez urządzenie.
Zanim zaczniesz
Zanim przyjrzysz się demonstracji, zapoznaj się z oficjalną dokumentacją Google na temat ADPF. Ta dokumentacja jest bezcennym źródłem informacji i wskazówek dotyczących korzystania z ADPF.
Jeśli jednak wolisz dostosowane uczenie, repozytorium przykładowych danych ADPF zawiera praktyczne przykłady implementacji ADPF w aplikacjach na Androida.
Dostosowywanie ustawień grafiki
W przypadku Unreal Engine możemy dynamicznie dostosowywać ustawienia grafiki, aby zachować wydajność.
Do monitorowania ograniczania zużycia energii w związku z temperaturą użyliśmy w ADPF monitora stanu termicznego i interfejsu Thermal Headroom API. Gdy urządzenie zacznie zwalniać, możesz dostosować ustawienia jakości, takie jak jakość cieni, odbić i tekstur.
Do modyfikowania różnych ustawień służą te ustawienia jakości grafiki w Unreal Engine:
- ViewDistanceQuality
- ShadowQuality
- GlobalIlluminationQuality
- ReflectionQuality
- AntiAliasingQuality
- TextureQuality
- VisualEffectQuality
- PostProcessingQuality
- FoliageQuality
- ShadingQuality
- OverallScalabilityLevel
Testowanie w praktyce
Firma Arm tworzy własne gry demonstracyjne, które służą do badania technologii gier i grafiki na urządzenia mobilne. W tym roku przetestowaliśmy ADPF na jednym z nich, SteelArms.
SteelArms ma różne poziomy intensywności grafiki i znaczną obciążenie procesora. Jest ona zbudowana tak, aby przypominać współczesne gry mobilne, dzięki czemu możemy odwzorować zachowanie gry na dzisiejszych telefonach komórkowych. Pozwala nam też testować, jak różne technologie mogą działać w grze na urządzeniach mobilnych z procesorami ARM.
Wyniki
Poprzednie obrazy pokazują różnicę między najlepszą jakością (kinową) a najniższą jakością (niską) po włączeniu automatycznego dostosowania jakości grafiki. Zmiana ta jest stopniowa i nie jest zauważalna dla użytkowników podczas rozgrywki.
Widok podzielonego ekranu z najwyższymi ustawieniami grafiki po lewej stronie (niebieski robot) i najniższymi ustawieniami grafiki po prawej stronie (czerwony robot).
Na poprzednich rysunkach 3 i 4 widać ten sam widok robota. Przyjrzyj się bliżej, aby zobaczyć ustawienia grafiki dostosowane za pomocą ADPF. Czy widzisz ring, ramię robota, liny ringu i publiczność? Wszystkie mają niższą jakość, ponieważ zostały utworzone za pomocą ADPF.
Gdy throttling był nieunikniony, te efekty zostały zmniejszone w demo SteelArms. Te niewielkie zmiany w postprodukcji i efektach wizualnych są trudne do zauważenia. Użytkownicy zwykle nie zauważają ich podczas grania. Oznacza to, że możesz zachować większość wizualnych wrażeń z gry bez wpływu na rozgrywkę. Możesz to zrobić, nie wpływając na wydajność gry ani czas pracy na baterii urządzenia.
Jak już wspomnieliśmy, na potrzeby demonstracji porównujemy obrazy z najwyższą i najniższą jakością. Dlatego różnicę można zauważyć, gdy przyjrzysz się uważnie. Jednak podczas rozgrywki, gdy obraz jest skalowany w dół, użytkownik nie zauważy różnicy, a zabawa będzie płynna.
Wyniki
Urządzenie nie przegrzewa się i utrzymuje się w zakresie 1,0.
Zużycie energii
Wyniki ADPF
Wyniki z włączonym i wyłączonym ADPF można zobaczyć na rysunkach podanych wcześniej. Pokazywanie różnicy w liczbie klatek na sekundę w grze a zużyciem energii przez rdzenie. Gdy włączona jest funkcja ADPF, można uzyskać wzrost liczby klatek do 57%. Gdy ADPF jest wyłączony, procesor graficzny pobiera znaczną ilość energii. Duże rdzenie procesora mają wtedy skoki mocy zgodne z obciążeniem GPU. Gdy dogania ilość przetwarzania, o którą prosi. Dla porównania, gdy włączona jest funkcja ADPF, duże rdzenie procesora reagują na ograniczanie i obniżają ogólne zużycie energii wszystkich rdzeni na urządzeniu.
Podsumowanie
ADPF może znacznie zmniejszyć zużycie energii podczas grania. Oznacza to dłuższy czas grania, większą żywotność baterii i niższą temperaturę urządzenia. Z perspektywy dewelopera, ADPF utrzymuje prawidłową liczbę klatek na sekundę w grze. Jednocześnie zapewniają elastyczność w zakresie obniżania jakości, zachowując przy tym świetne wrażenia z gry.
ADPF może być używany na nowszych i starszych urządzeniach. Dzięki temu gry będą działać na wysokim poziomie na urządzeniach poprzednich generacji bez konieczności dodatkowej optymalizacji.