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. Par exemple :

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

Vous pouvez assurer la prise en charge de votre jeu et gérer l'API Game Mode pour qu'elle remplace les interventions Game Mode fournies par l'OEM.

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

Chaque jeu peut:

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

Arrière-plan

Cette section décrit le rôle des interventions en mode Jeu et explique 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 allant jusqu'à 30% de la consommation du GPU et de 10% de la consommation globale du système. 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 tous les jeux soient bien rythmés, car des fréquences d'images inégales ont un impact significatif 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 de la limitation du FPS.

Évaluer les interventions en mode Jeu

Cette section utilise la commande adb.

Configurer les modes

Vous devez désactiver Game Mode dans le fichier de configuration Game Mode de l'application avant de tester les interventions Game Mode. Sinon, la plate-forme les ignorera 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 existante d'un appareil

Pour le Pixel ou d'autres appareils, il peut y avoir une configuration d'intervention de jeu préexistante 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-la et réinitialisez-la 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 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 correspond à "É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 correspond à 80%). Un redimensionnement de 90 % (0,9) est presque négligeable, tandis qu'un redimensionnement de 50% (0,5) est significatif.

Avertissement:Il est possible que les processus enfants ne soient pas redimensionnés correctement dans Android 12. En particulier, assurez-vous que les toasts 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 comment votre jeu est affecté par l'intervention de redimensionnement du tampon d'arrière-plan WindowManager:

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

Veillez à redémarrer le jeu après chaque sélection de mode de jeu. Cette intervention nécessite le redémarrage de l'application.

Désactiver les interventions

Pour contrôler si une intervention est appliquée à votre jeu, désactivez-la. Chaque intervention a son propre paramètre de désactivation.

  1. Le même fichier XML de configuration que celui utilisé pour contrôler l'activation et la désactivation de Game Mode 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) seront utilisées, sauf si vous désactivez explicitement leur utilisation dans votre jeu.

Ressources

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