Fonctionnement
- Le jeu active les états d’alimentation dynamiques du GPU.
- Le GPU calcule des statistiques d’image normalisées et les conserve comme données historiques.
- Le GPU change automatiquement d’état d’alimentation selon la demande actuelle et l’historique, ce qui économise de l’énergie.
Les jeux peuvent réduire davantage leur consommation d’énergie en adoptant le reste de la trousse d’outils de durabilité XBOX.
Études de cas
Call of Duty: Black Ops 6
Rulon Raymond, directeur principal de la technologie pour Call of Duty :Nous avons passé quelques jours à expérimenter avec le DPS et les résultats étaient prometteurs. Plus précisément, nous avons constaté des économies d’énergie supplémentaires de 10 à 15 % dans des zones au-delà de celles que nous avions introduites à l’aide de la trousse d’outils de durabilité XBOX. Nous ralentissions déjà certaines parties du moteur de jeu (par exemple, dans les menus ou les écrans d’accueil), sans changement de la fréquence d’images pour les joueurs, ce qui nous a fait économiser beaucoup d’énergie, mais le DPS nous a permis d’obtenir des économies supplémentaires sans aucun effort.Au lancement, le plan de l’équipe de Black Ops 6 était le suivant :
- Activer le DPS dans toutes les zones où des mesures d’économie d’énergie étaient déjà appliquées.
- Exposer un indicateur permettant d’activer le DPS en tout temps, désactivé par défaut, pendant que les tests de performance sur plusieurs jours se poursuivent.
Two Point Museum
Ben Hymers, directeur technique et cofondateur de Two Point Studios, a déployé le DPS au moyen d’un paramètre infonuagique géré par l’équipe XBOX, sans modification du code :Nous avons testé les états d’alimentation dynamiques conjointement avec le mode Constrained+ afin de maximiser l’efficacité énergétique. Ensemble, ces fonctionnalités ont réduit la consommation d’environ 50 à 58 % dans le menu principal et diminué la consommation d’énergie en mode contraint de 39 à 63 %. Depuis le déploiement, nous avons observé une baisse notable de la consommation d’énergie moyenne sans dégrader la fidélité du jeu. Par exemple, la consommation de la XBOX Series X est passée d’une moyenne de 135 W à 125 W. À l’échelle de notre base de joueurs, cela se traduit par une économie d’énergie annuelle d’environ 6,5 mégawattheures, ce qui équivaut à regarder la télévision sans arrêt pendant 65 000 heures, soit près de 7,5 années consécutives.Two Point Museum a été le premier studio tiers à adopter le DPS à distance au moyen d’une configuration infonuagique.
Tester le DPS sans modifier le code (développement seulement)
Vous pouvez activer le DPS globalement sur une console de développement sans régénérer votre titre :1
Mettre à jour votre console de développement
Assurez-vous qu’au moins la récupération d’août 2024 est installée sur votre console de développement.
2
Créer le fichier indicateur
Créez un fichier vide nommé
DynamicPowerEnable sur votre PC.3
Le copier sur le lecteur D: de la console
4
Lancer et profiler
Lancez votre jeu. Le DPS est maintenant actif.
5
Désactiver le DPS une fois terminé
Observer le DPS en temps réel
Activez la superposition de performances du titre (Title Performance Overlay) au moyen de PIX ou des paramètres de la console dans XBOX Manager.- Si le DPS est activé, la superposition comprend une ligne rouge et une mesure GPU power state (0 à 4) dans le coin inférieur droit. 4 signifie pleine vitesse; une valeur inférieure signifie une économie d’énergie.
- Si le DPS est désactivé, l’état d’alimentation du GPU affiche
N/A.
Activer le DPS dans votre jeu (version commerciale)
Utilisez l’API existanteSetDriverHintX() sur le périphérique graphique.
API
Activer le DPS
Désactiver le DPS
Détecter le DPS à l’exécution avec les statistiques d’image
Les jeux peuvent interroger les statistiques d’image pour prendre des décisions de rendu (résolution dynamique, etc.) en fonction du comportement du DPS.GetFrameStatisticsX
Un nouveau type de statistiques d’image est offert :D3D12XBOX_RENDER_STATISTICS retourne GPUBusyDuration :
GPUBusyDuration est normalisée : elle suppose que l’horloge du GPU est à P4 et elle est indépendante de l’état d’alimentation actuel. Les statistiques d’image de mise à l’échelle de l’alimentation sont soumises aux changements d’état d’alimentation et différeront de GPUBusyDuration.
Exemple
Une charge de travail GPU qui prend 8 ms à P4 s’allonge à 12 ms à P2 (horloge plus basse) :La valeur normalisée
GPUBusyDuration est conservée parce que les moteurs de jeu l’utilisent pour les calculs de résolution dynamique. Séparer les mesures normalisées et mises à l’échelle évite les boucles de rétroaction où un état d’alimentation inférieur ferait baisser continuellement la résolution dynamique jusqu’à atteindre la plus basse.