Interventions en mode Jeu

Les interventions Game Mode sont des optimisations spécifiques aux jeux définies par les fabricants d'équipement d'origine (OEM) pour améliorer les performances des jeux qui ne sont plus mis à jour par les développeurs. Exemple :

  • Utiliser le redimensionnement du tampon d'arrière-plan WindowManager.
  • Utilisation d'ANGLE au lieu des pilotes GLES natifs

Vous pouvez demander à votre jeu de prendre en charge et de gérer l'API Game Mode pour qu'il remplace les interventions Game Mode fournies par l'OEM.

L'API et les interventions Game Mode sont disponibles sur :

Chaque jeu peut:

  • Implémentez le comportement de l'API Game Mode.
  • Proposer des paramètres d'intervention Game Mode aux OEM ou
  • Désactivez explicitement les interventions en mode Jeu.

Arrière-plan

Cette section décrit le fonctionnement des interventions en mode Jeu et comment optimiser votre jeu pour chaque mode.

Redimensionnement du tampon d'arrière-plan WindowManager

L'intervention de redimensionnement du tampon d'arrière-plan WindowManager peut réduire la charge GPU d'un appareil. Elle permet également de réduire la consommation de la batterie lorsqu'un jeu respecte le nombre de frames par seconde cible.

L'activation du redimensionnement peut entraîner une réduction de la consommation d'énergie du GPU pouvant atteindre 30% et de la consommation d'énergie globale du système de 10 %. Les résultats peuvent varier en fonction de l'appareil utilisé, des conditions environnementales et d'autres facteurs, tels que le traitement simultané.

Un jeu sans nombre de frames par seconde défini et reposant sur le GPU est susceptible d'afficher une fréquence de frames plus élevée lors des charges de GPU réduites.

Nous vous recommandons vivement de faire en sorte que le nombre de frames par seconde soit correctement défini pour tous les jeux, car des fréquences de frames irrégulières ont un impact important sur la façon dont les utilisateurs perçoivent les performances.

Limitation du FPS

La limitation du FPS Android est une intervention du mode Jeu qui permet aux jeux de s'exécuter à une fréquence d'images plus stable afin de réduire la consommation de la batterie. L'intervention est disponible sur Android 13 ou version ultérieure. Pour en savoir plus, consultez la présentation du contrôle des FPS.

Évaluer les interventions en mode Jeu

Cette section utilise la commande adb.

Configurer les modes

Vous devez désactiver les modes Jeu dans le fichier de configuration du mode Jeu de l'application avant de tester les interventions du mode Jeu. Sinon, la plate-forme les contournera et ne respectera que les optimisations dans le jeu.

<?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"
/>

(Facultatif) Sauvegarder la configuration de l'appareil existant

Pour les Pixel ou d'autres appareils, il est possible qu'une configuration d'intervention dans les jeux préexistante soit définie dans la configuration de votre appareil. Vous pouvez interroger la configuration à l'aide de la commande suivante:

adb shell device_config get game_overlay <PACKAGE_NAME>

Si la requête renvoie null, ignorez la configuration préexistante. Sinon, enregistrez-le et rétablissez-le après l'évaluation.

Évaluer les interventions

Pour évaluer l'intervention de redimensionnement du tampon d'arrière-plan WindowManager seule, utilisez la commande suivante pour définir différentes valeurs de redimensionnement de la mémoire tampon WindowManager dans les modes de jeu.

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

Dans l'exemple ci-dessus, mode=2 correspond à "Performances" et mode=3 à "Économiseur de batterie". La valeur downscaleFactor est spécifiée en tant que pourcentage qui s'applique au paramètre de redimensionnement (par exemple, 0,7 correspond à 70% et 0,8 à 80%). Un redimensionnement de 90 % (0,9) est presque négligeable, alors qu'un redimensionnement de 50% (0,5) est considérable.

Avertissement:Il est possible que les processus enfants ne soient pas redimensionnés correctement dans Android 12. En particulier, assurez-vous que les notifications et les pop-ups s'affichent correctement. Nous vous recommandons de limiter le paramètre de redimensionnement à au moins 70%.

Une fois les nouvelles valeurs de redimensionnement configurées, passez d'un mode de jeu à un autre pour voir l'impact de l'intervention de redimensionnement du tampon d'arrière-plan WindowManager sur votre jeu:

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

Veillez à redémarrer le jeu après chaque sélection de mode de jeu. L'intervention de réduction de la taille nécessite un redémarrage de l'application.

Désactiver les interventions

Vous pouvez choisir de ne pas appliquer d'intervention à votre jeu. Chaque intervention a son propre paramètre de désactivation.

  1. Le même fichier XML de configuration utilisé pour contrôler l'activation et la désactivation des modes de jeu est également utilisé pour les paramètres d'intervention:
<?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. Recompilez votre jeu et renvoyez-le pour le désactiver l'intervention.

Par défaut, les interventions définies par les fabricants d'équipement d'origine (OEM) sont utilisées, sauf si vous désactivez explicitement leur utilisation pour votre jeu.

Ressources

Pour en savoir plus sur la mesure et l'optimisation des performances des jeux, consultez les liens suivants :