ID3D12GraphicsCommandList1 ::AtomicCopyBufferUINT64, méthode (d3d12.h)

Copie atomiquement un élément de données principal de type UINT64 d’une ressource à l’autre, ainsi que des ressources dépendantes facultatives.

Ces « ressources dépendantes » sont ainsi nommées, car elles dépendent de l’élément de données principal pour les localiser. En général, l’élément clé est une adresse, un index ou un autre handle qui fait référence indirectement à une ou plusieurs ressources dépendantes.

Cette fonction prend en charge un élément de données principal de type UINT64 (64 bits). Une autre version de cette fonction, AtomicCopyBufferUINT, prend en charge un élément de données principal de type UINT (32 bits).

Syntaxe

void AtomicCopyBufferUINT64(
  [in] ID3D12Resource                       *pDstBuffer,
       UINT64                               DstOffset,
  [in] ID3D12Resource                       *pSrcBuffer,
       UINT64                               SrcOffset,
       UINT                                 Dependencies,
  [in] ID3D12Resource                       * const *ppDependentResources,
  [in] const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges
);

Paramètres

[in] pDstBuffer

Type : ID3D12Resource*

SAL : In

Ressource dans laquelle l’élément de données primaire UINT64 est copié.

DstOffset

Type : UINT64

Décalage dans la mémoire tampon des ressources de destination qui spécifie l’emplacement dans lequel l’élément de données principal est copié, en octets. Ce décalage combiné à l’adresse de base de la mémoire tampon de ressources doit aboutir à une adresse mémoire naturellement alignée pour les valeurs UINT64.

[in] pSrcBuffer

Type : ID3D12Resource*

SAL : In

Ressource à partir de laquelle l’élément de données primaire UINT64 est copié. Ces données sont généralement une adresse, un index ou un autre handle que le code du nuanceur peut utiliser pour localiser la version la plus récente des informations sensibles à la latence.

SrcOffset

Type : UINT64

Décalage dans la mémoire tampon de ressource source qui spécifie l’emplacement à partir duquel l’élément de données principal est copié, en octets. Ce décalage combiné à l’adresse de base de la mémoire tampon de ressources doit aboutir à une adresse mémoire naturellement alignée pour les valeurs UINT64.

Dependencies

Type : UINT

Nombre de ressources dépendantes.

[in] ppDependentResources

Type : ID3D12Resource*

SAL : In_reads(Dependencies)

Tableau de ressources qui contiennent les éléments dépendants de la charge utile de données.

[in] pDependentSubresourceRanges

Type : const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL : In_reads(Dependencies)

Tableau de plages de sous-ressources qui spécifient les éléments dépendants de la charge utile de données. Ces éléments sont complètement mis à jour avant que l’élément de données primaire ne soit lui-même copié de manière atomique. Cela garantit que l’ensemble de l’opération est logiquement atomique ; autrement dit, l’élément de données primaire ne fait jamais référence à une charge utile de données incomplète.

Valeur de retour

None

Remarques

Cette méthode est généralement utilisée pour mettre à jour des ressources pour lesquelles la latence normale du pipeline de rendu peut nuire à l’expérience utilisateur. Par exemple, une application peut calculer une matrice d’affichage à partir de la dernière entrée utilisateur (par exemple, à partir des capteurs d’un écran monté en tête), et utiliser cette fonction pour mettre à jour et activer cette matrice dans les listes de commandes déjà distribuées au GPU afin de réduire la latence perçue entre l’entrée et le rendu.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3d12.lib
DLL D3d12.dll

Voir aussi

ID3D12GraphicsCommandList1