> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PresentX (famille XBOX One)

> Présente un ensemble de ressources pour l'affichage.

Présente un ensemble de ressources pour l'affichage.

## Syntaxe

```cpp theme={null}
HRESULT PresentX(
        UINT PlaneCount,
        const D3D12XBOX_PRESENT_PLANE_PARAMETERS* pPlaneParameters,
        const D3D12XBOX_PRESENT_PARAMETERS* pPresentParameters)
```

### Paramètres

*PlaneCount*   \_In\_range\_(1, D3D12XBOX\_PRESENT\_PLANES\_MAX)
Type : UINT

Le nombre de plans à présenter. Plusieurs plans peuvent être constitués d'un plan d'arrière-plan avec des superpositions et/ou de paires de compositions standard et HDR (High Dynamic Range) de l'image. Utilisez un nombre de plans de 0 pour basculer l'affichage vers null, ce qui définira la couleur d'affichage sur le noir. La XBOX Series X|S permet le mélange de plans plus grands que 1920 x 1080, qui peuvent tous deux être en HDR.

*pPlaneParameters*   \_In\_reads\_(PlaneCount)
Type : const [D3D12XBOX\_PRESENT\_PLANE\_PARAMETERS](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_present_plane_parameters)\*

Pointeur vers le premier élément d'un tableau de paramètres utilisés pour contrôler la présentation de chaque plan fourni. Ordonnez le tableau selon l'ordre Z : de l'arrière vers l'avant. Définissez les éléments par proximité, puis par paires d'espaces de couleurs (HDR-SDR).

*pPresentParameters*   \_In\_opt\_
Type : const [D3D12XBOX\_PRESENT\_PARAMETERS](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_present_parameters)\*

Facultatif. Pointeur vers un ensemble de paramètres utilisés pour contrôler la présentation.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

Retourne S\_OK si les ressources d'échange spécifiées ont été mises en file d'attente avec succès pour la présentation.

Retourne ERROR\_WAS\_STILL\_DRAWING si [D3D12XBOX\_PRESENT\_FLAG\_DO\_NOT\_WAIT](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_present_flags) est spécifié et qu'une ou plusieurs des *ppResources* spécifiées de *pPlaneParameters* sont actuellement affichées ou en file d'attente pour la présentation.

Retourne E\_INVALIDARG en cas de paramètres non valides ou de composition non valide de la présentation.

Retourne D3DERR\_DEVICEREMOVED si le GPU cesse de répondre avant l'appel à **PresentX**

## Remarques

Les ressources incluses dans les tableaux *ppResources* contenus dans *pPlaneParameters* remplacent les anciennes chaînes d'échange et doivent être créées avec la prise en charge du basculement (flip) vers un affichage. Pour activer la prise en charge du basculement, appelez [CreateCommittedResource](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-createcommittedresource) et définissez l'indicateur **D3D12\_HEAP\_FLAG\_ALLOW\_DISPLAY** ([D3D12\_HEAP\_FLAGS](/fr-CA/reference/graphics/d3d12_x/enums/d3d12_heap_flags)) dans le paramètre *pDesc*. Les ressources créées sans tas sous-jacent ne sont pas encore autorisées.

Les chaînes d'échange ont évolué en une collection de ressources affichables gérée par l'utilisateur; toutefois, en raison des limitations du TLB, un nombre limité de ressources de ce type peut être instancié à la fois. Une ressource affichable ne peut pas être libérée jusqu'à la désallocation si elle est actuellement en cours de balayage par un affichage ou en file d'attente pour la présentation. Vous devez d'abord basculer l'affichage vers un autre ensemble de ressources ou vers null (si l'application est fermée). Pour effectuer une présentation null, appelez **PresentX(0, nullptr, nullptr);**.

Avec *ppResources* qui remplace les chaînes d'échange, l'espace de couleurs d'une ressource d'échange est désormais déclaré dans les paramètres de plan inclus dans *pPlaneParameters*, et le mappage de tons automatique pour GameDVR est sélectionné pour une ressource au moyen de l'indicateur de création de ressource [D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_AUTOMATIC\_GAMEDVR\_TONE\_MAP](/fr-CA/reference/graphics/d3d12_x/enums/d3d12_resource_flags), ce qui entraîne un stockage de tas supplémentaire et un coût GPU par Present. La XBOX Series X|S ajoute deux autres formats de ressources d'échange : **DXGI\_FORMAT\_R9G9B9E5\_SHAREDEXP** et **DXGI\_FORMAT\_A8\_UNORM**. Une ressource d'échange **DXGI\_FORMAT\_A8\_UNORM** doit toujours être associée à une ressource d'échange **DXGI\_FORMAT\_R9G9B9E5\_SHAREDEXP**. Elle sert de canal alpha pour la ressource RGBE, lorsqu'un canal alpha est souhaité (par exemple, lors du mélange de plusieurs plans). La XBOX Series X|S permet également la compression DCC (Delta Color Compression) des ressources d'échange au moyen de l'indicateur de création de ressource [D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_DCC](/fr-CA/reference/graphics/d3d12_x/enums/d3d12_resource_flags).

Les ressources peuvent ne pas être présentées si l'identification des images utilisées dans leur production, ou du moins utilisées pour lancer leur construction, n'est pas fournie. Cela est nécessaire pour corréler les statistiques de présentation aux images individuelles, pour mesurer la latence du pipeline d'image complet depuis l'origine et pour l'échantillonnage des entrées jusqu'à l'affichage. L'identification s'effectue au moyen du membre *Token* des paramètres *pPlaneParameters*, où différentes valeurs [D3D12XBOX\_FRAME\_PIPELINE\_TOKEN](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_frame_pipeline_token) peuvent être spécifiées pour chaque plan de composition (arrière-plan et superposition), étant donné la possibilité de fréquences de présentation différentes selon les plans et donc d'images de base différentes. Le jeton de pipeline doit être inclus de manière redondante pour les plans qui proviennent tous de la même image.

Les images et leurs ressources d'échange associées doivent être présentées dans l'ordre dans lequel elles ont été produites. Un flux de jetons de pipeline d'image provenant de [WaitFrameEventX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_waitframeeventx) se termine par *PresentX*, sans qu'aucune perte d'image ni aucun réordonnancement ne soit autorisé. Le contenu d'un plan de composition peut être conservé à l'affichage pendant qu'un ou plusieurs autres plans sont mis à jour; pour ce faire, passez la même ressource et le même jeton d'image que ceux fournis pour le plan lors de l'appel précédent à *PresentX*.

Pour supprimer un plan de composition établi au cours d'une série d'appels à *PresentX*, omettez les ressources et les jetons du plan dans le tableau pointé par *pPlaneParameters* lors d'un appel ultérieur à *PresentX*.

Les ressources d'échange présentées sont basculées vers l'affichage au moment de leur VBlank planifié; cela suppose que l'appel à *PresentX* est effectué et traité dans le seuil de la cible déclarée dans *ImmediateThresholdPercent* de *pPresentParameters*. Si **PresentX** manque le VBlank mais arrive dans le seuil, la ressource sera basculée immédiatement vers l'affichage. Ce seuil est basé sur un pourcentage de la durée de balayage de l'affichage (de VBlank à VBlank), et non sur un pourcentage de l'intervalle d'image défini. De plus, contrairement à la présentation immédiate, configurée au moyen de l'indicateur [D3D12XBOX\_PRESENT\_FLAG\_IMMEDIATE](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_present_flags) dans *pPresentParameters* (qui déclenche immédiatement l'origine de l'image suivante), les basculements immédiats basés sur le seuil ne signaleront l'origine de l'image suivante que si le moment de cette origine est déjà passé.

## Configuration requise

**En-tête :** d3d12\_x.h

**Bibliothèque :** d3d12\_x.lib

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[ID3D12CommandQueue](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/id3d12commandqueue)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [Game streaming latency compensation deep dive](/build/core-features/common/game-streaming/game-streaming-latency-compensation-deep-dive.md)
- [XGameStreamingGetAssociatedFrame](/reference/system/xgamestreaming/functions/xgamestreaminggetassociatedframe.md)
- [Documentation de développement de jeux XBOX](/fr-CA/index.md)
- [XFrontPanelPresentBuffer](/reference/devkit/xfrontpaneldisplay/functions/xfrontpanelpresentbuffer.md)
