Mise à niveau de votre titre conçu avec le Software Development Kit XBOX One sur les consoles XBOX Series
Cette rubrique décrit comment un titre conçu avec le Software Development Kit XBOX One peut détecter qu’il s’exécute sur XBOX Series X|S. Le titre peut ensuite utiliser cette information pour offrir une expérience améliorée tout en continuant de fonctionner en mode de rétrocompatibilité. Les titres conçus avec le Software Development Kit XBOX One peuvent faire une mise à jour de contenu de leur jeu XBOX One afin de tirer parti d’environ 80 pour cent de la puissance des nouvelles consoles XBOX sans avoir à, par exemple, passer au Microsoft Game Development Kit (GDK) ou au nouveau compilateur de nuanceurs. Les titres conçus avec le Software Development Kit XBOX One ne peuvent pas accéder aux nouvelles fonctionnalités de la plateforme, comme DirectX 12 Ultimate. Cette rubrique décrit comment détecter que vous vous exécutez sur des consoles XBOX Series et décrit les limitations des titres conçus avec le Software Development Kit XBOX One qui s’exécutent en mode de rétrocompatibilité par rapport à un titre natif XBOX Series X|S conçu avec le Microsoft Game Development Kit (GDK). Cette rubrique explique également comment les développeurs peuvent activer des expériences supplémentaires lorsqu’ils s’exécutent sur des consoles XBOX Series. Ces fonctionnalités comprennent Quick Resume, AutoHdr, AnisoBoost et VsyncMode. Cette rubrique ne s’applique pas aux titres qui utilisent déjà le Microsoft Game Development Kit (GDK). Nous exigeons que les titres XBOX One conçus avec le Microsoft Game Development Kit (GDK) et publiés avant le Microsoft Game Development Kit (GDK) 2020.06 (le premier Microsoft Game Development Kit (GDK) approuvé pour les consoles XBOX Series) passent au Microsoft Game Development Kit (GDK) 2020.06 ou à une version ultérieure.Introduction
Depuis la récupération 2020.06, les titres conçus avec le Software Development Kit XBOX One peuvent détecter s’ils s’exécutent sur XBOX Series X ou XBOX Series S au moyen d’une API officielle. Cela ne nécessite que de simples mises à jour du code de votre titre et du fichier AppxManifest, ainsi qu’un empaquetage à l’aide d’un programme d’installation des outils 2018.07 QFE. Bien qu’il n’y ait aucune exigence précise de mettre à niveau le Software Development Kit XBOX One avec lequel vous avez initialement publié votre titre pour tirer parti des nouvelles capacités, l’allocation de plus de 5 Go de RAM exige que votre titre soit généré avec le Software Development Kit XBOX One 2017.06 ou une version ultérieure. Les titres conçus avec le Software Development Kit XBOX One peuvent être déployés sur un kit de développement XBOX Series X de la manière habituelle, le kit étant réglé au mode « XBOX Series X » ou « Lockhart ». Le déploiement par envoi (push) du titre sur le SSD NVMe de détail est essentiel pour les tests. Le lecteur plus rapide peut submerger le processeur de travail de décompression, ce qui cause des saccades d’images qui ne se produisent pas sur les consoles XBOX One. Vous ou votre éditeur devez tester minutieusement la mise à jour du titre sur un kit de développement XBOX Series X fonctionnant en modes XBOX Series X et Lockhart, ainsi que sur des consoles XBOX One. L’équipe de rétrocompatibilité XBOX ne testera pas les mises à jour de contenu qui utilisent le mode « compatible XBOX Series X|S », qui est créé lorsque certains paramètres sont ajoutés au fichier AppxManifest des titres conçus avec le Software Development Kit XBOX One. 2018.07 est la dernière version du Software Development Kit XBOX One. Aucune fonctionnalité supplémentaire n’est prévue. Le soutien se limite désormais aux correctifs de bogues critiques sans solution de contournement. Nous vous encourageons fortement à passer au Microsoft Game Development Kit (GDK) pour vos futurs titres.Marketing
Une mise à jour de contenu pour un titre conçu avec le Software Development Kit XBOX One ne peut pas utiliser toute la puissance ni l’ensemble des fonctionnalités des nouvelles consoles XBOX Series. Bien qu’un titre conçu avec le Software Development Kit XBOX One qui tire parti de ces options soit admissible au marketing et à la promotion entourant les améliorations, il ne sera admissible à aucune image de marque spécifique applicable aux mises à jour de contenu natives XBOX Series X|S conçues avec le Microsoft Game Development Kit (GDK).Recommandations
Nous recommandons fortement que les titres implémentent la mise à l’échelle dynamique de la résolution (DRS). Elle maximise la résolution tout en réduisant au minimum les images perdues. Cependant, vous devez veiller à ne pas être incorrectement limité par les limites de résolution de la XBOX One sur les nouvelles consoles XBOX Series. Vous devrez décider de ce que votre titre doit faire de la puissance supplémentaire du processeur, du GPU, de la mémoire et de la vitesse d’E/S. Cependant, nous recommandons d’offrir au joueur les options suivantes.- Une option « Performance » à fréquence d’images doublée :
- Sachez toutefois que les titres conçus avec le Software Development Kit XBOX One qui s’exécutent sur XBOX Series X|S ne peuvent débloquer qu’environ 80 pour cent des performances du GPU. Les performances de tous les composants matériels n’ont pas doublé; par exemple, la bande passante.
- Cela signifie que la XBOX Series S pourrait raisonnablement exécuter les titres XBOX One S au double de la fréquence d’images et peut-être à une résolution de 1080p. La XBOX Series X, cependant, pourrait avoir de la difficulté à atteindre la même résolution que la XBOX One X. Une certaine diminution de la résolution pourrait être nécessaire pour atteindre le temps d’image de manière constante.
- Une option « Résolution », possiblement uniquement pour la XBOX Series S :
- La même fréquence d’images, mais 1080p devrait être un minimum atteignable, avec une résolution maximale de 1440p ou plus. Le titre pourrait utiliser des textures HD sur XBOX Series S et implémenter un affichage tête haute 4K.
- La version XBOX One X de votre titre atteint peut-être déjà des résolutions suffisamment élevées pour qu’une option « Résolution » sur XBOX Series X ait peu de sens.
- Nous ne recommandons pas que le titre tente d’implémenter des résolutions supérieures à 4K.
- Une option « Améliorée » :
- Nous recommandons que la XBOX Series S s’exécute à un minimum de 1080p; une partie de la puissance supplémentaire du GPU pourrait donc être consacrée à la résolution. Sur XBOX Series X, une petite quantité de puissance supplémentaire du GPU pourrait permettre une résolution 4K fixe.
- Une part importante de la puissance supplémentaire disponible sur les nouvelles consoles XBOX Series peut être utilisée, par exemple, pour plusieurs améliorations, de plus grandes distances d’affichage, davantage de PNJ, des ombres de plus haute résolution ou davantage de lumières projetant des ombres, et un meilleur filtrage des textures.
Détection des consoles XBOX Series
Les titres conçus avec le Software Development Kit XBOX One deviennent « compatibles XBOX Series X|S » en ajoutant le paramètre suivant à leur fichier AppxManifest.Software Development Kit XBOX One 2017.06 et versions ultérieures
Lorsque le titre est « compatible XBOX Series X|S »,GetConsoleType() peut retourner trois valeurs qui ne sont pas présentes dans l’énumération CONSOLE_TYPE fournie par l’en-tête du XDK. Vous devrez ajouter les définitions suivantes au code de votre titre.
Software Development Kit XBOX One antérieur à 2017.06
La fonctionGetConsoleType() et l’énumération CONSOLE_TYPE n’existaient pas avant le Software Development Kit XBOX One 2017.06. Les titres utilisant des Software Development Kits XBOX One plus anciens doivent utiliser GetProcAddress pour trouver la fonction GetConsoleType() dans kernelx.dll. Voici un exemple.
GetProcAddress échoue uniquement sur les consoles XBOX One, jamais sur les consoles XBOX Series S ou XBOX Series X.
Dans certains cas graphiques précis, un titre doit connaître la console réelle sur laquelle il s’exécute, ainsi que le mode de compatibilité en vigueur sur cette console. Dans ces cas, le titre peut supposer qu’une console XBOX Series S s’exécute en mode de compatibilité XBOX One S et qu’une console XBOX Series X s’exécute en mode de compatibilité XBOX One X.
Livraison de ressources propres à chaque console à l’aide d’Intelligent Delivery
Intelligent Delivery permet aux titres d’attribuer des regroupements de ressources, appelés blocs (chunks), à des consoles précises en utilisant des balises dans un fichier layout.xml, comme le montre l’exemple suivant.Devices="Xbox-Durango" seront installées sur les consoles XBOX Series S. Les ressources étiquetées Devices="Xbox-Scorpio" seront livrées aux consoles XBOX Series X.
Si vous voulez que votre titre ait accès aux ressources propres à Scorpio sur XBOX Series S, vous pouvez mettre à jour la disposition du titre pour qu’elle ressemble à l’exemple suivant.
Xbox-Lockhart et Xbox-Anaconda nécessite les outils mis à jour du QFE15 des outils du Software Development Kit XBOX One 2018.07.
Performances, fonctionnalités et ressources lors de l’exécution d’un titre conçu avec le Software Development Kit XBOX One sur les consoles XBOX Series
Les titres conçus avec le Software Development Kit XBOX One s’exécutent en mode de rétrocompatibilité. Par conséquent, ils n’ont pas accès aux éléments suivants :- Fonctionnalités de DirectX 12 Ultimate :
- Ombrage à taux variable (VRS)
- DirectX Raytracing (DXR) ou les intrinsèques de lancer de rayons
- Sampler Feedback for Streaming (SFS)
- Toutes les optimisations propres à Navi2 (par exemple, les suivantes) :
- Regroupement différé des lots de primitives (deferred primitive batch binning)
- fp16
- wave32
- Format de rendu 999e5
- Modes de mosaïque optimaux pour XBOX Series X et XBOX Series S
- DirectStorage et l’unité de décompression de mémoire
TitleMemory dans le fichier AppxManifest. Les titres « compatibles XBOX Series X|S » reçoivent automatiquement 7,5 Go sur XBOX Series S et 9 Go sur XBOX Series X, à partir de la récupération 2020.10.
Une méthode permettant de relever la limite sur les consoles XBOX Series S et XBOX Series X au moyen du fichier AppxManifest avait été décrite auparavant, mais elle n’est plus nécessaire. La prise en charge des paramètres TitleMemory propres à XBOX Series X|S a été retirée dans le QFE15 des outils du Software Development Kit XBOX One 2018.07. Si des paramètres de mémoire propres à XBOX Series X|S demeurent dans le fichier AppxManifest, le système d’exploitation les ignore. Cependant, l’outil makepkg signale une erreur. Vous devez supprimer ces paramètres avant l’empaquetage.
Ni la console XBOX Series S ni la console XBOX Series X ne comportent d’ESRAM. Lors de l’exécution sur ces consoles, il est important que les titres empruntent le chemin de code de la XBOX One X, en évitant les copies qui étaient nécessaires pour l’ESRAM mais qui sont redondantes sur les nouvelles consoles XBOX. Vous voudrez peut-être continuer à utiliser l’aliasing des cibles de rendu, particulièrement sur XBOX Series S.
Fonctions dépréciées
GetGpuHardwareConfigurationX est dépréciée et ne doit pas être utilisée. Les titres doivent plutôt utiliser GetConsoleType.
Tests
Vous ou votre éditeur êtes responsable de tester la mise à jour du titre. Lors des tests de compatibilité, nous vous encourageons fortement à utiliser la plus récente préversion de la récupération 2020.10 (ou d’une version ultérieure). Nous recommandons une partie complète, exécutée à partir du SSD NVMe de détail. Avec des performances du processeur et du GPU nettement améliorées, il est possible que des situations de concurrence (race conditions) qui n’ont pas été rencontrées sur les consoles XBOX One soient exposées. Il est probable que le SSD NVMe livre les données assez rapidement pour que la décompression par le processeur devienne le goulot d’étranglement lors du chargement à partir du disque dur. Vous devez déployer par envoi (push) votre titre sur le SSD NVMe de détail et vérifier que la décompression par le processeur ne cause pas de pics ni d’images perdues. La vitesse de lecture des fichiers peut varier considérablement selon que le titre s’exécute sur le SSD NVMe interne ou sur une clé USB 3.0 externe.Modes de mosaïque
La XBOX Series S utilise les modes de mosaïque de la XBOX One S; la XBOX Series X utilise les modes de mosaïque de la XBOX One X. Le mode de mosaïque 1D que nous recommandons pour les textures est le même sur les deux consoles XBOX One. Par conséquent, les textures empaquetées avec la mosaïque 1D n’ont pas besoin d’être modifiées lorsqu’elles s’exécutent sur des consoles XBOX Series en mode de rétrocompatibilité.Outils
En général, vous avez seulement besoin d’un Software Development Kit XBOX One avec des outils mis à jour pour empaqueter votre titre. Nous avons publié le QFE14 du Software Development Kit XBOX One 2018.07. Il contient un programme d’installation des outils mis à jour uniquement pour fournir les outils nécessaires aux capacités de base des consoles XBOX Series dans les paramètresAppxManifest. Comme mentionné précédemment, la version des outils 2018.07 QFE15 contient la mise à jour qui active les capacités d’installation intelligente pour les consoles XBOX Series.
Installez le plus récent QFE des outils afin de disposer de la version actuelle de makepkg. Elle peut interpréter les paramètres de manifeste « compatibles XBOX Series X|S ».
Captures GPU avec PIX
Pour utiliser PIX pour les captures GPU sur un kit de développement XBOX Series X, vous devez utiliser le PIX du Software Development Kit XBOX One pour effectuer la capture. Cependant, la lecture doit se faire avec un PIX du Microsoft Game Development Kit (GDK). Pour lire ces captures, utilisez le Microsoft Game Development Kit (GDK) d’août (2020.08) ou une version ultérieure.Captures CPU avec PIX
Pour utiliser PIX pour les captures CPU sur un kit de développement XBOX Series X, vous pouvez utiliser la même version 1807 de PIX qui a été installée lorsque vous avez obtenu la mise à jour des outils du Software Development Kit XBOX One pour prendre en charge l’empaquetage du titre.Paramètres supplémentaires
Un titre peut aussi être configuré pour tirer parti de certaines fonctionnalités de XBOX Series X|S, qu’il soit compatible XBOX Series X|S ou non. Quatre options de remplacement sont offertes dans le manifeste :AnisoBoost et VsyncMode
Le filtrage anisotrope des textures est forcé à 16 fois lors de l’exécution des titres en mode de rétrocompatibilité. De plus, la présentation des images est automatiquement synchronisée sur le retour vertical (vertical blank). Les titres qui appellentPresent() avec SyncInterval=0 se comportent comme s’ils avaient plutôt passé SyncInterval=1.
La désactivation du filtrage anisotrope forcé peut être particulièrement importante pour les titres qui tentent d’atteindre une fréquence d’images doublée. De plus, les titres peuvent spécifier VsyncMode="double" pour doubler le taux normal de présentation. L’effet de ces modes est résumé dans le tableau suivant.
†Selon la prise en charge de l’écran et la configuration du système
Le mode
double permet des fréquences d’images plus élevées sans modification du code du titre (bien qu’une implémentation adéquate nécessite souvent certaines modifications). De plus, le mode double active la prise en charge de la présentation à 120 Hz, sous réserve de certaines limitations. L’écran doit prendre en charge un taux de rafraîchissement de 120 Hz, et la console doit être configurée pour une sortie à 120 Hz dans la section des options Téléviseur et affichage des Paramètres. Si l’une de ces conditions n’est pas remplie, le taux de présentation du titre demeure limité à 60 Hz. Un titre peut déduire le taux de présentation actuel en appelant DXGIXGetFrameStatistics() et en comparant des images successives (plus précisément les champs GPUTimeVSync et VSyncCount).
AutoHdr
Bien que la plupart des titres existants du catalogue aient l’auto-HDR activé au niveau de la plateforme et du service, les titres ajoutés au catalogue après le 1er novembre 2020 ont l’auto-HDR désactivé par défaut.AutoHdr="true" remplace ce comportement et permet au titre de s’exécuter avec l’auto-HDR activé, à condition que le paramètre de la console soit aussi activé.
EnableQuickResume
Comme pour AutoHdr, de nombreux titres rétrocompatibles existants du catalogue ont Quick Resume activé au niveau de la plateforme. Pour les titres sans cette fonctionnalité activée par défaut,EnableQuickResume="true" remplace ce comportement, ce qui active Quick Resume sur les consoles XBOX Series.
Quick Resume dépend de la capacité du titre à prendre en charge correctement la suspension et la reprise, et permet de restaurer et de reprendre rapidement le titre, ce qui facilite le retour au jeu.