> ## 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

Nombre de plans à présenter. Plusieurs plans peuvent se composer d'un plan d'arrière-plan avec des superpositions et/ou de paires de compositions standard et HDR (High Dynamic Range) de la frame. Utilisez un nombre de plans égal à 0 pour basculer l'affichage vers null, ce qui définit la couleur de l'affichage sur noir. XBOX Series X|S permet le mélange de plans supérieurs à 1920 x 1080, qui peuvent tous deux être HDR (High Dynamic Range).

*pPlaneParameters*   \_In\_reads\_(PlaneCount)
Type : const [D3D12XBOX\_PRESENT\_PLANE\_PARAMETERS](/fr/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. Organisez 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/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 renvoyée

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

Renvoie S\_OK si les ressources d'échange spécifiées ont été correctement mises en file d'attente pour la présentation.

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

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

Renvoie 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 (swap chains) 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/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é vers une collection de ressources affichables gérée par l'utilisateur ; toutefois, en raison des limitations du TLB, seul un nombre limité de ressources de ce type peut être instancié à la fois. Une ressource affichable ne peut pas être libérée jusqu'à sa désallocation si elle est actuellement balayée (scan-out) 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 arrêtée). Pour effectuer une présentation null, appelez **PresentX(0, nullptr, nullptr);**.

Avec *ppResources* remplaçant 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 via l'indicateur de création de ressource [D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_AUTOMATIC\_GAMEDVR\_TONE\_MAP](/fr/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. XBOX Series X|S ajoute deux formats de ressources d'échange supplémentaires, **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). XBOX Series X|S permet également la compression DCC (Delta Color Compression) des ressources d'échange via l'indicateur de création de ressource [D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_DCC](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_flags).

Les ressources peuvent ne pas être présentées si l'identification des frames utilisées pour leur production, ou au moins pour le lancement de leur construction, n'est pas fournie. Cela est nécessaire pour corréler les statistiques de présentation aux frames individuelles, pour mesurer la latence du pipeline de frame complet depuis l'origine et pour l'échantillonnage des entrées jusqu'à l'affichage. L'identification s'effectue via le membre *Token* des paramètres *pPlaneParameters*, où différentes valeurs [D3D12XBOX\_FRAME\_PIPELINE\_TOKEN](/fr/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é que les fréquences de présentation des plans peuvent différer et donc que les frames de base peuvent être différentes. Le jeton de pipeline doit être inclus de manière redondante pour les plans qui proviennent tous de la même frame.

Les frames 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 de frames provenant de [WaitFrameEventX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_waitframeeventx) se termine par *PresentX*, sans qu'aucune perte de frame 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, transmettez la même ressource et le même jeton de frame 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 est immédiatement basculée vers l'affichage. Ce seuil est basé sur un pourcentage du temps de balayage de l'affichage (de VBlank à VBlank), et non sur un pourcentage de l'intervalle de frame défini. En outre, contrairement à la présentation immédiate, configurée à l'aide de l'indicateur [D3D12XBOX\_PRESENT\_FLAG\_IMMEDIATE](/fr/reference/graphics/d3d12_x/enums/d3d12xbox_present_flags) dans *pPresentParameters* (qui déclenche immédiatement l'origine de la frame suivante), les basculements immédiats basés sur le seuil ne signalent l'origine de la frame suivante que si l'heure de cette origine est déjà passée.

## Configuration requise

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

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

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

## Voir aussi

[ID3D12CommandQueue](/fr/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)
