IddCxSwapChainReleaseAndAcquireBuffer2, fonction (iddcx.h)

Important

Certaines informations concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.

Un pilote d’affichage indirect appelle IddCxSwapChainReleaseAndAcquireBuffer2 pour libérer la mémoire tampon actuelle dans la chaîne d’échange et en acquérir une nouvelle. Un pilote qui prend en charge les adaptateurs HDR doit utiliser IddCxSwapChainReleaseAndAcquireBuffer2 au lieu de IddCxSwapChainReleaseAndAcquireBuffer et IddCxSwapChainReleaseAndAcquireSystemBuffer.

Syntaxe

HRESULT IddCxSwapChainReleaseAndAcquireBuffer2(
  IDDCX_SWAPCHAIN                    SwapChainObject,
  IDARG_IN_RELEASEANDACQUIREBUFFER2  *pInArgs,
  IDARG_OUT_RELEASEANDACQUIREBUFFER2 *pOutArgs
);

Paramètres

SwapChainObject

[in] Objet de chaîne d’échange précédemment transmis par le système d’exploitation au pilote dans un appel EVT_IDD_CX_MONITOR_ASSIGN_SWAPCHAIN.

pInArgs

[in] Pointeur vers une structure IDARG_IN_RELEASEANDACQUIREBUFFER2 contenant les arguments d’entrée de la fonction.

pOutArgs

[out] Pointeur vers une structure IDARG_OUT_RELEASEANDACQUIREBUFFER2 dans laquelle les arguments de sortie de la fonction sont retournés.

Valeur de retour

IddCxSwapChainReleaseAndAcquireBuffer2 retourne S_OK en cas de réussite ; sinon, elle retourne un code d’erreur approprié.

Remarques

L’espace de couleur de la surface passée dans le struct IDDCX_METADATA2 est également passé au pilote. Cela est dû au fait qu’il peut changer par image et ne correspond pas à l’espace de couleur spécifié lorsqu’un mode a été validé.

De même, le format de pixels de la surface fournie peut changer d’image par image. Par exemple, si un mode HDR est validé sur un chemin, cela ne garantit pas que chaque surface sera une surface FP16.

Le niveau blanc du contenu SDR est également inclus pour être appliqué aux curseurs de la souris.

Si IDDCX_METADATA2_VALID_FLAGS_HDR10METADATA est défini dans IDDCX_METADATA2 ::ValidFlags, IDDCX_METADATA2 ::Hdr10FrameMetaData contient des données valides. Ces métadonnées peuvent être l’un des trois types suivants :

  • Nouvelles données que le pilote doit utiliser.
  • Indication que les métadonnées par défaut précédemment envoyées au pilote dans un appel à EVT_IDD_CX_MONITOR_SET_DEFAULT_HDR_METADATA doivent être utilisées.
  • Indication que les métadonnées précédemment envoyées doivent être réutilisées. Lorsque le type est par défaut ou inchangé, les valeurs de IDDCX_HDR10_FRAME_METADATA ::NewMetaData ne sont pas valides.

IddCxSwapChainReleaseAndAcquireBuffer2 remplace également IddCxSwapChainReleaseAndAcquireSystemBuffer. Un pilote qui aurait appelé IddCxSwapChainReleaseAndAcquireSystemBuffer peut définir IDARG_IN_RELEASEANDACQUIREBUFFER2 ::AcquireSystemMemoryBuffer pour indiquer qu’il a besoin de IDDCX_METADATA2 ::SystemBufferInfo renseigné.

Les pilotes version 1.10 qui ne signalent pas prise en charge FP16 peuvent toujours appeler cette fonction si elle est disponible dans le système d’exploitation.

Pour plus d’informations sur la prise en charge HDR, consultez mises à jour IddCx version 1.10.

Lorsque des surfaces de chaîne d’échange D3D12 sont fournies à un pilote, il existe des données supplémentaires qui doivent être transmises au système d’exploitation pour garantir que l’accès à la surface est correctement synchronisé avec le système d’exploitation. L’objet ID3D12CommandQueue dans le pilote envoie des commandes sur utilisant la surface de chaîne d’échange comme entrée doit être indiquée au système d’exploitation afin qu’il puisse synchroniser correctement les lectures du pilote avec les écritures du système d’exploitation.

Au moment où le pilote appelle IddCxSwapChainReleaseAndAcquireBuffer2, le système d’exploitation l’utilise comme indication que le pilote est prêt à soumettre le travail qui utilise la surface de chaîne d’échange. Si le pilote envoie d’autres travaux à la même file d’attente de commandes, cela peut être retardé inutilement.

Métadonnées HDR distantes

Le système d’exploitation ne transmet pas les métadonnées HDR aux pilotes distants, car les métadonnées HDR sur le système client doivent être utilisées, et non pas générées par le serveur. Pour les pilotes distants IDDCX_METADATA2_VALID_FLAGS_HDR10METADATA ne seront jamais définis.

Exigences

Exigence Valeur
client minimum pris en charge Windows 11, 26H1 (IddCx 1.11)
plateforme cible Windows
d’en-tête iddcx.h

Voir aussi

IDARG_IN_RELEASEANDACQUIREBUFFER2

IDARG_OUT_RELEASEANDACQUIREBUFFER2

IDDCX_METADATA2