Fonctionnement
- Le jeu active les états d’alimentation dynamiques du GPU.
- Le GPU calcule des statistiques d’image normalisées et les stocke sous forme de données historiques.
- Le GPU change automatiquement d’état d’alimentation en fonction de la demande actuelle et de l’historique, ce qui économise de l’énergie.
Les jeux peuvent réduire davantage leur consommation d’énergie en adoptant le reste du XBOX Sustainability Toolkit.
É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 DPS et les résultats étaient prometteurs. Plus précisément, nous avons constaté 10 à 15 % d’économies d’énergie supplémentaires dans des zones au-delà de celles que nous avions introduites à l’aide du XBOX Sustainability Toolkit. Nous réduisions déjà certaines parties du moteur de jeu (par exemple, dans les menus ou les écrans d’accueil), sans changement de fréquence d’images pour les joueurs, ce qui nous a fait économiser beaucoup d’énergie, mais DPS nous a permis d’obtenir des économies supplémentaires sans aucun effort.Au moment de la sortie, le plan de l’équipe de Black Ops 6 était le suivant :
- Activer DPS dans toutes les zones où des mesures d’économie d’énergie étaient déjà appliquées.
- Exposer un indicateur permettant d’activer DPS en permanence, désactivé par défaut, pendant la poursuite des tests de performances sur plusieurs jours.
Two Point Museum
Ben Hymers, directeur technique et cofondateur de Two Point Studios, a déployé DPS via un paramètre cloud géré par l’équipe XBOX, sans aucune modification de code :Nous avons testé Dynamic Power States en combinaison avec le mode Constrained+ pour 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 gameplay. Par exemple, la consommation de la XBOX Series X est passée d’une moyenne de 135 W à 125 W. Sur l’ensemble de nos joueurs, cela représente une économie d’énergie annuelle d’environ 6,5 mégawattheures, soit l’équivalent de 65 000 heures de télévision sans interruption, ou près de 7,5 années d’affilée.Two Point Museum a été le premier studio tiers à adopter DPS à distance via une configuration cloud.
Tester DPS sans modifier le code (développement uniquement)
Vous pouvez activer DPS globalement sur un devkit sans recompiler votre titre :1
Mettre à jour votre devkit
Assurez-vous que votre devkit dispose au minimum de la Recovery d’août 2024.
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. DPS est maintenant actif.
5
Désactiver DPS une fois terminé
Observer DPS en temps réel
Activez la Title Performance Overlay via PIX ou les paramètres de la console dans XBOX Manager.- Si DPS est activé, la superposition comporte une ligne rouge et une métrique GPU power state (0 à 4) en bas à droite. 4 signifie pleine vitesse ; une valeur inférieure signifie une économie d’énergie.
- Si DPS est désactivé, l’état d’alimentation du GPU affiche
N/A.
Activer DPS dans votre jeu (version commerciale)
Utilisez l’API existanteSetDriverHintX() sur le périphérique graphique.
API
Activer DPS
Désactiver DPS
Détecter 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 de DPS.GetFrameStatisticsX
Un nouveau type de statistiques d’image est disponible :D3D12XBOX_RENDER_STATISTICS renvoie GPUBusyDuration :
GPUBusyDuration est normalisé : il suppose que l’horloge du GPU est à P4 et ne dépend pas de l’état d’alimentation actuel. Les statistiques d’image de mise à l’échelle de la puissance sont soumises aux changements d’état d’alimentation et diffèrent 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, car 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 dans lesquelles un état d’alimentation inférieur ferait baisser continuellement la résolution dynamique jusqu’à atteindre le minimum.