Interwencje w trybie gry

Interwencje w trybie gry są optymalizacje w kontekście gier ustawione przez producentów oryginalnego sprzętu (OEM). aby poprawić wydajność gier, które nie są już aktualizowane przez dla programistów. Na przykład:

  • Użycie zmiany rozmiaru bufora wstecznego w usłudze WindowManager.
  • Używanie ANGLE zamiast natywnych sterowników GLES.

Możesz uzyskać pomoc dotyczącą gier i zarządzać Game Mode API – w celu zastąpienia go. Interwencje w trybie gry realizowane przez producenta OEM.

Interfejs Game Mode API i interwencje są dostępne na tych platformach:

Każda gra może:

  • Zaimplementuj działanie interfejsu Game Mode API.
  • zaproponować producentom OEM ustawienia interwencji w trybie gry.
  • Wyraźna rezygnacja z interwencji w trybie gry.
.

Tło

W tej sekcji opisujemy, czym są interwencje w trybie gry i jak je optymalizować w każdym trybie.

Zmiana rozmiaru bufora wstecznego w usłudze WindowManager

Zmiana rozmiaru bufora wstecznego WindowManager może zmniejszyć obciążenie GPU urządzenia. Może też zmniejszyć zużycie baterii, gdy gra jest uruchomiona z docelową liczbą klatek.

Włączenie zmiany rozmiaru może spowodować zmniejszenie o 30% GPU i o 10% całego zużycie energii przez system. Wyniki mogą się różnić w zależności od używane urządzenie, warunki środowiskowe i inne czynniki, takie jak jednoczesne działanie o przetwarzaniu danych.

W grach bez tempa, które są ograniczone do GPU, prawdopodobnie będzie wyświetlana więcej klatek przy mniejszym obciążeniu GPU.

Zdecydowanie zalecamy, aby wszystkie gry w dobrym tempie, ponieważ znacznie nierównomiernie wpływają na to, jak użytkownicy postrzegają skuteczność.

Ograniczanie liczby klatek na sekundę

Ograniczanie liczby klatek na sekundę w Androidzie to interwencja trybu gry, która pomaga w grach stabilniejsza liczba klatek, co pozwala zmniejszyć zużycie baterii. Interwencja dostępne na Androidzie 13 i nowszych. Więcej więcej informacji znajdziesz w artykule z omówieniem ograniczania liczby klatek na sekundę.

Ocena interwencji w trybie gry

W tej sekcji używamy polecenia adb.

Skonfiguruj tryby

Musisz zrezygnować z trybów gry na stronie Plik konfiguracyjny trybu gry przed przetestowaniem interwencji w trybie gry. W przeciwnym razie platforma omija i respektować tylko te optymalizacje w grze.

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(Opcjonalnie) Utwórz kopię zapasową istniejącej konfiguracji urządzenia

W przypadku Pixela lub innych urządzeń może być konieczna interwencja dotycząca gry . Możesz wysłać zapytanie do konfiguracji za pomocą polecenia:

adb shell device_config get game_overlay <PACKAGE_NAME>

Jeśli zapytanie zwróci wartość null, zignoruj istniejącą konfigurację. W przeciwnym razie zapisz go. i resetowany do niej po ocenie.

Ocena interwencji

Aby samodzielnie ocenić interwencję zmiany rozmiaru bufora wstecznego WindowManager, użyj następujące polecenie, aby ustawić różne wartości rozmiaru bufora WindowManagera trybach gry.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

W powyższym przykładzie mode=2 to „Skuteczność”, a mode=3 to „Oszczędzanie baterii”. Wartość downscaleFactor jest podawana jako procent, który ma zastosowanie do ustawienia rozmiaru (np. 0,7 to 70%, a 0,8 to 80%). 90% (0,9) zmiana rozmiaru jest niemal znikoma, a 50% (0,5) – znacząca.

Ostrzeżenie: w Androidzie 12 rozmiar procesów podrzędnych może nie być prawidłowo zmieniany. W upewnij się, że powiadomienia i wyskakujące okienka wyświetlają się poprawnie. Śr zalecamy ograniczenie zmiany rozmiaru do co najmniej 70%.

Po skonfigurowaniu nowych możliwości zmiany rozmiaru możesz przełączać się między trybami gry, aby zobaczyć, jak to działa. na grę wpływa interwencja zmiany rozmiaru bufora wstecznego WindowManagera:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

Po każdym wybraniu trybu gry musisz ponownie uruchamiać grę. ograniczenie skalowania wymaga ponownego uruchomienia aplikacji.

Zrezygnuj z interwencji

Możesz określić, czy interwencja zostanie zastosowana w grze. rezygnując z subskrypcji. Każda interwencja ma własne ustawienie rezygnacji.

  1. Ten sam plik XML konfiguracji, który służy do kontrolowania wyrażania zgody na korzystanie z gry oraz rezygnacji z niej. Tryby są też wykorzystywane w ustawieniach interwencji:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. Aby zrezygnować, ponownie skompiluj grę i prześlij ją ponownie.

Domyślnie interwencje określone przez producentów oryginalnego sprzętu Będą używane produkty OEM, chyba że jednoznacznie zrezygnujesz z ich używania.

Materiały

Więcej informacji o mierzeniu i optymalizowaniu wydajności gry: