Skip to main content
Présente un ensemble de ressources pour l’affichage.

Syntaxe

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* 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* 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 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 et définissez l’indicateur D3D12_HEAP_FLAG_ALLOW_DISPLAY (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, 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. 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 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 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 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
Last modified on October 6, 2026