Android Dynamic Performance Framework (ADPF) est un outil puissant de Google destiné aux développeurs qui souhaitent optimiser les performances de leurs applications. Grâce à ses API thermiques, ADPF fournit des informations en temps réel sur l'état thermique de l'appareil, qui sont ensuite utilisées pour ajuster les paramètres graphiques dans l'application.
À des fins de recherche, Arm a développé une démonstration utilisant Unreal Engine et ADPF pour étudier comment ADPF est utilisé pour optimiser les performances des jeux.
ADPF surveille l'état thermique, et les qualités graphiques sont ajustées en conséquence dans le moteur de jeu.
En gardant à l'esprit les développeurs, l'objectif est de permettre aux utilisateurs de jouer plus longtemps sans affecter l'expérience de jeu et sans que l'appareil ne consomme trop d'énergie.
Avant de commencer
Avant d'examiner la démonstration plus en détail, il est important de mettre en avant la documentation officielle de Google sur l'ADPF. Cette documentation est une ressource inestimable qui fournit des insights approfondis et des conseils sur l'utilisation d'ADPF.
Toutefois, pour ceux qui préfèrent un apprentissage personnalisable, l'exemple de dépôt ADPF contient des exemples pratiques d'implémentation de l'ADPF dans des applications Android.
Ajustement des paramètres graphiques
Dans le contexte d'Unreal Engine, nous pouvons ajuster dynamiquement les paramètres graphiques pour maintenir les performances.
Nous avons utilisé le moniteur de l'état thermique et l'API Thermal Headroom dans ADPF pour surveiller la limitation thermique. Vous pouvez ensuite ajuster les paramètres de qualité, tels que la qualité des ombres, des reflets et des textures, lorsque l'appareil commence à réduire sa fréquence d'images.
Les paramètres de qualité graphique suivants d'Unreal Engine permettent de modifier divers paramètres:
- ViewDistanceQuality
- ShadowQuality
- GlobalIlluminationQuality
- ReflectionQuality
- AntiAliasingQuality
- TextureQuality
- VisualEffectQuality
- PostProcessingQuality
- FoliageQuality
- ShadingQuality
- OverallScalabilityLevel
Testé en conditions réelles
Arm crée ses propres jeux de démonstration, qui sont utilisés pour la recherche sur les technologies de jeux et de graphismes mobiles. Cette année, nous avons testé l'ADPF sur l'une d'entre elles, la démonstration SteelArms.
SteelArms présente différents niveaux d'intensité graphique et une charge de travail de processeur importante. Il est conçu pour ressembler aux jeux mobiles modernes afin que nous puissions modéliser le comportement du jeu sur les téléphones mobiles actuels. Il nous permet également de tester le fonctionnement de différentes technologies dans un jeu sur des appareils mobiles basés sur Arm.
Résultats
Les images précédentes montrent une différence entre la meilleure qualité (Cinématique) et la qualité la plus basse (Faible) lorsque l'ADPF est activé pour ajuster les paramètres graphiques. Ce changement est progressif et n'est pas perceptible par les utilisateurs pendant le jeu.
Vue d'écran partagé avec les paramètres graphiques les plus élevés à gauche (robot bleu) et les paramètres graphiques les plus bas à droite (robot rouge).
Dans les figures 3 et 4 précédentes, la même vue du robot peut être vue côte à côte. En y regardant de plus près, les paramètres graphiques ajustés à l'aide d'ADPF sont visibles. Notez le sol du ring, l'épaule du robot, les cordes du ring et la foule. Ils semblent tous être de qualité légèrement inférieure, ce qui a été obtenu à l'aide d'ADPF.
Lorsque le débit était imminent, ces effets étaient réduits dans la démonstration SteelArms. Il est difficile de repérer ces petites réductions du post-traitement et des effets visuels. De plus, les utilisateurs ne les remarqueront généralement pas pendant le jeu. Cela signifie que vous pouvez conserver la majeure partie de l'expérience visuelle du jeu sans nuire à l'expérience de jeu. Vous pouvez faire tout cela tout en conservant les performances énergétiques de votre jeu et l'autonomie de la batterie de votre appareil.
Comme indiqué précédemment, à des fins de démonstration, nous comparons les images avec les paramètres de qualité les plus élevés et les plus bas. C'est pourquoi la différence peut encore être visible si vous regardez attentivement. Toutefois, lorsqu'il est réduit pendant le jeu, il est à peine perceptible par l'utilisateur, tout en maintenant une expérience de jeu stable.
Résultats
L'appareil évite la surchauffe et reste dans la plage de marge thermique de 1,0.
Consommation d'énergie
Résultats de l'ADPF
Les résultats de l'ADPF activé et désactivé sont visibles dans les figures présentées précédemment. Indique qu'il existe une différence entre la fréquence d'images du jeu et la consommation d'énergie des cœurs. La fréquence d'images peut être améliorée jusqu'à 57% lorsque l'ADPF est activé. Lorsque l'ADPF est désactivé, le GPU consomme une quantité importante d'énergie. Le grand cœur de processeur présente alors des pics d'alimentation cohérents avec la charge de travail du GPU. car il rattrape la quantité de traitement qui lui est demandée. En comparaison, lorsque ADPF est activé, le grand cœur de processeur répond au throttling et réduit la consommation d'énergie globale de tous les cœurs de l'appareil.
Conclusion
L'ADPF peut considérablement améliorer la consommation d'énergie des jeux. Cela signifie, en fin de compte, une durée de jeu plus longue pour les joueurs, une meilleure autonomie de la batterie et une température plus basse pour l'appareil utilisé. Du point de vue du développeur, ADPF maintient la fréquence d'images correcte du jeu. tout en leur donnant la possibilité d'ajuster les paramètres de qualité et de proposer une expérience de jeu de qualité.
Les appareils plus récents et plus anciens peuvent bénéficier de l'ADPF. Il permet aux jeux de s'exécuter à un niveau de qualité élevé sur les générations précédentes d'appareils sans travail d'optimisation supplémentaire.