Skip to main content
Cette rubrique décrit le processus d’activation de la sortie HDR (High Dynamic Range) et WCG (Wide Color Gamut).

Vue d’ensemble

La plage dynamique élevée (HDR) et la gamme de couleurs étendue (WCG) offrent la meilleure qualité visuelle grâce à une luminosité et un contraste accrus, permettant d’afficher simultanément des détails jusque-là invisibles dans les zones sombres comme dans les blancs, avec davantage de couleurs qu’auparavant. Pour plus de détails sur le HDR, consultez la présentation Xfest 2016 intitulée An Introduction to HDR and Wide Color Gamut on UHD Displays (XBOX Developer Downloads->Conference Material->Xfest 2016 GPU Track Videos), et recherchez les normes HDR et WCG prises en charge.
  • SMPTE ST.2084 High Dynamic Range Electro-Optical Transfer Function of Mastering Reference Displays
  • BT.2020 Parameter values for ultra-high definition television systems for production and international programme exchange
Plusieurs exemples HDR sont disponibles, notamment SimpleHDR, HDRAutoToneMapping, HDRCalibration, HDRDisplayMapping, HDRReconstruction et Simple120Hz.

Initialisation

Pour produire une sortie HDR et WCG, un titre doit appeler XDisplayTryEnableHdrMode pendant l’initialisation (…\reference\system\xdisplay\xdisplay_members.md)). Si le téléviseur connecté prend en charge le HDR et le WCG et que le HDR est également activé dans les paramètres de la console, cet appel bascule le téléviseur en mode HDR. Cette API renvoie également les valeurs de luminance du téléviseur, qui peuvent être utilisées pour optimiser la sortie HDR du titre pour l’écran connecté. C’est ce qu’on appelle le mappage d’affichage. XDisplayTryEnableHdrMode est le seul mécanisme permettant à un titre de faire passer le téléviseur du mode SDR (Standard Dynamic Range) au mode HDR. Aucun mécanisme ne permet à un titre de faire entrer et sortir le téléviseur du mode HDR. Nous recommandons d’appeler XDisplayTryEnableHdrMode une seule fois pendant l’initialisation. L’entrée et la sortie du mode HDR peuvent provoquer un écran noir et une coupure du son sur le téléviseur pendant une durée allant de quelques centaines de millisecondes à plusieurs secondes. Cette durée dépend du téléviseur et des autres appareils HDMI situés entre la console et le téléviseur. Le téléviseur sort du mode HDR puis y revient si l’utilisateur lance une autre application qui occupe plus d’espace à l’écran que le titre, c’est-à-dire si l’autre application s’exécute en plein écran ou en mode remplissage. Le retour à l’accueil ne provoque pas de changement de mode. L’arrêt du titre ou le lancement d’un autre titre fait revenir le téléviseur en mode SDR.

Tampons d’échange

Après l’initialisation, un titre doit créer des ressources D3D12 servant de tampons d’échange pour deux plans d’affichage. Le premier plan d’affichage est utilisé pour le HDR, tandis que le second est utilisé pour le SDR. Pour prendre en charge GameDVR, la diffusion et le streaming en mode HDR, le titre doit fournir une image SDR avec mappage de tons. Le fait que le titre fournisse l’image SDR lui permet de produire des images SDR de la plus haute qualité. Notez que le système produit automatiquement une image SDR avec mappage de tons pour les captures d’écran. Voici les détails des tampons d’échange.
  1. La ressource D3D12 du tampon d’échange HDR doit être au format DXGI_FORMAT_R10G10B10A2_UNORM. Pour XBOX Series X|S, le format DXGI_FORMAT_R9G9B9E5_SHAREDEXP est également pris en charge.
  2. La ressource D3D12 du tampon d’échange SDR peut être au format DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB ou DXGI_FORMAT_R10G10B10A2_UNORM. Pour XBOX Series X|S, le format DXGI_FORMAT_R9G9B9E5_SHAREDEXP est également pris en charge.
Les deux tampons d’échange doivent ensuite être présentés avec ID3D12CommandQueue::PresentX (aucun autre appel Present ne prend en charge le HDR). Lors de l’appel de PresentX, D3D12XBOX_PRESENT_PLANE_PARAMETERS.ColorSpace doit être défini sur DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 pour le premier plan d’affichage. Pour XBOX Series X|S, ColorSpace peut également être défini sur DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709, DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3, DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020, DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P709 et DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_D65P3. Pour plus de détails, consultez la section Rendu.

Rendu

Un titre doit utiliser un shader pour effectuer le rendu de valeurs HDR10 dans les tampons d’échange du premier plan d’affichage. Autrement dit, les valeurs de couleur doivent être dans l’espace colorimétrique Rec.2020 (et, en plus, pour XBOX Series X|S, Rec. 709 et P3), et encodées à l’aide de la courbe gamma ST.2084. Les valeurs de couleur des tampons d’échange du second plan d’affichage doivent être dans l’espace colorimétrique Rec.709 et peuvent utiliser le même encodage de courbe gamma que celui normalement utilisé lors du rendu SDR pour un écran SDR. Pour XBOX Series X|S, le second plan d’affichage est facultatif. Pour XBOX Series X|S, un titre a la possibilité d’effectuer le rendu de valeurs HDR linéaires plutôt que de valeurs non linéaires auxquelles la courbe gamma ST.2084 est appliquée. Les valeurs de couleur peuvent être dans l’espace colorimétrique Rec. 709, Rec.2020 ou P3 et être normalisées entre 0,0 et 1,0. Un blanc D65 à 10 000 nits est toujours représenté par (1.0, 1.0, 1.0), quel que soit l’espace colorimétrique utilisé. Pour cette option, le titre doit utiliser le format de tampon d’échange DXGI_FORMAT_R9G9B9E5_SHAREDEXP avec l’espace colorimétrique de présentation DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020, DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3 ou DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709. Pour plus de détails, consultez la section Paramètres du plan de présentation. Si le contenu du titre n’utilise pas la totalité de la gamme de couleurs Rec. 2020, il est conseillé d’effectuer le rendu dans les gammes plus réduites P3 et Rec. 709, car cela améliore la précision des couleurs, en particulier avec le format de tampon d’échange DXGI_FORMAT_R9G9B9E5_SHAREDEXP. Cela évite également la surcharge d’une conversion de gamme vers Rec. 2020, car la conversion est effectuée sans coût par le matériel d’affichage.

Mappage de tons automatique

Dans certains cas, un titre peut s’appuyer sur le système pour générer automatiquement une image SDR avec mappage de tons, un processus appelé mappage de tons automatique. Lorsque cette fonctionnalité est activée, le shader du titre est chargé de ne pas effectuer le rendu des valeurs de couleur dans un plan d’affichage secondaire. Deux indicateurs clés interviennent dans ce processus : D3D12XBOX_RESOURCE_FLAG_ALLOW_AUTOMATIC_GAMEDVR_TONE_MAP et D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET. Le système, pour le compte du titre, fait appel à un compute shader pour effectuer le mappage de tons. Le fonctionnement de ce compute shader peut être observé dans une capture GPU PIX, plus précisément dans le bloc d’événements intitulé Auto Tone Mapping, qui se produit juste avant l’appel Present. Il est important de noter que cette fonctionnalité utilise une quantité de mémoire, de bande passante et de ressources GPU similaire à celle que nécessiterait la production de l’image SDR par le titre lui-même. Autrement dit, le pilote graphique alloue des ressources supplémentaires pour le plan d’affichage secondaire. Consultez également l’API XBOX One SetHDRToneMapperX. Pour XBOX Series X|S, le mappage de tons automatique peut améliorer les performances, car il est effectué par le matériel. Le titre n’a donc pas besoin de consacrer des cycles GPU ou de la mémoire supplémentaire à la production de l’image SDR avec mappage de tons. Vous pouvez vous attendre à un gain de 0,12 ms sur XBOX Series X en 4K, ainsi que sur XBOX Series S en 1440p. En ce qui concerne la mémoire, avec un triple tampon en 4K, un titre économise près de 100 Mo en n’ayant pas à allouer de tampons de chaîne d’échange supplémentaires pour le SDR.

Préférence entre HDR et 120 Hz

Un titre peut vouloir prendre en charge à la fois le HDR et le 120 Hz. Lors de l’activation du HDR via XDisplayTryEnableHdrMode, un titre peut définir une préférence pour le HDR ou le 120 Hz au cas où la configuration console et téléviseur de l’utilisateur ne pourrait pas prendre en charge les deux. Consultez l’exemple Simple120Hz. Lors de l’appel de l’API pour tenter d’activer le HDR, un titre peut définir la préférence pour indiquer s’il préfère le HDR ou une fréquence d’actualisation élevée. Si c’est possible, nous fournissons les deux ; sinon, nous nous basons sur la préférence du titre. Un titre peut demander à l’utilisateur ou prendre une décision à sa place (par exemple en fonction du mode de jeu, comme le multijoueur) ; c’est au jeu de décider. Pour plus d’informations, consultez la rubrique de l’API XDisplayTryEnableHdrMode.

Étalonnage HDR pour les jeux

L’application HDR Game Calibration affiche une série de mires de test pour déterminer les caractéristiques d’un téléviseur HDR. L’application se trouve dans les Paramètres de la console, sous « TV & display options », « Calibrate HDR for games ». Image des « Paramètres de la console », sous « TV & display options », « Calibrate HDR for games » Les valeurs d’étalonnage de la luminance minimale et maximale du mappage de tons du téléviseur sont déterminées et renvoyées par l’API XDisplayTryEnableHdrMode. Ces valeurs d’étalonnage sont stockées dans le système, et les jeux Microsoft Game Development Kit (GDK) sur XBOX One et XBOX Series X|S peuvent choisir d’utiliser ces informations pour améliorer leur qualité visuelle sur le téléviseur HDR connecté. Consultez le code source des shaders des exemples HDRDisplayMapping et HDRCalibration pour savoir comment utiliser ces valeurs. Les jeux peuvent utiliser les valeurs d’étalonnage de deux manières.
  1. Ne pas implémenter d’écran d’étalonnage propre au jeu et utiliser simplement les valeurs d’étalonnage de l’API pour implémenter le mappage d’affichage.
  2. Implémenter un écran d’étalonnage propre au jeu, mais utiliser les valeurs d’étalonnage de l’API comme valeurs par défaut et comme valeurs de départ de l’écran d’étalonnage du jeu. L’avantage de cette option est que, même si le joueur n’utilise pas l’écran d’étalonnage du jeu, le jeu utilise tout de même des valeurs par défaut correctes. De plus, si le joueur utilise l’écran d’étalonnage du jeu, celui-ci démarre déjà avec de bonnes valeurs.
Un jeu peut inclure d’autres écrans d’étalonnage de réglage fin, tels que des ajustements du contraste et des nits du blanc papier, qui ne font pas partie de l’application HDR Game Calibration. Un jeu peut également créer un lien profond vers l’application HDR Game Calibration s’il le souhaite.

Dolby Vision pour les jeux XBOX

Dolby Vision est le nom d’un format vidéo à plage dynamique élevée (HDR), créé par Dolby, qui offre une profondeur de couleur et un rendu visuel plus riches que le HDR10. Deux options de prise en charge existent : une solution intégrée à la plateforme XBOX qui applique Dolby Vision à un jeu HDR10, ou une implémentation Dolby Vision native utilisant le SIDK de Dolby. Pour plus d’informations, consultez Dolby Vision pour les jeux XBOX

Auto HDR

Auto HDR est une fonctionnalité qui peut ajouter automatiquement le HDR à un titre SDR. Elle utilise des fonctionnalités matérielles des XBOX Series X et S ; elle n’est donc pas prise en charge sur XBOX One. Elle n’a aucun coût en performances pour le titre ou le système. Autrement dit, la fonctionnalité n’utilise ni CPU ni GPU, ni mémoire ou bande passante supplémentaire, et n’ajoute aucune latence. Lorsque vous utilisez Auto HDR au lieu d’une implémentation HDR native, le titre ne doit pas créer de tampons d’échange propres au HDR ; par exemple, il ne doit pas spécifier l’indicateur DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020. Il est toutefois recommandé d’utiliser un format de tampon d’échange 10 bits plutôt qu’un format 8 bits, car cela permet une plus grande précision dans l’image HDR finale et réduit les artefacts de bandes potentiels. Pour plus d’informations, consultez l’article des forums de développeurs XBOX Auto HDR on XBOX Series X|S consoles. Le code suivant montre comment activer Auto HDR sur un titre SDR.
Pour plus d’informations, consultez la description de l’indicateur D3D12XBOX_CREATE_DEVICE_FLAG_ENABLE_AUTO_HDR dans D3D12XBOX_CREATE_DEVICE_FLAGS, AutoHDRPaperWhiteLevelNits dans D3D12XBOX_CREATE_DEVICE_PARAMETERS, ainsi que l’exemple AutoHDR.

Voir aussi

Vue d’ensemble des graphismes
Last modified on October 6, 2026