Condividi tramite


Metodo ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 (d3d12.h)

Atomicamente copia un elemento dati primario di tipo UINT64 da una risorsa a un'altra, insieme alle risorse dipendenti facoltative.

Queste "risorse dipendenti" sono denominate in modo denominato perché dipendono dall'elemento dati primario per individuarle, in genere l'elemento chiave è un indirizzo, un indice o un altro handle che fa riferimento a una o più risorse dipendenti indirettamente.

Questa funzione supporta un elemento dati primario di tipo UINT64 (64bit). Una versione diversa di questa funzione, AtomicCopyBufferUINT, supporta un elemento dati primario di tipo UINT (32bit).

Sintassi

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
);

Parametri

[in] pDstBuffer

Tipo: ID3D12Resource*

SAL: In

Risorsa copiata dall'elemento dati primario UINT64.

DstOffset

Tipo: UINT64

Offset nel buffer delle risorse di destinazione che specifica dove l'elemento dati primario viene copiato in byte. Questo offset combinato con l'indirizzo di base del buffer di risorse deve comportare un indirizzo di memoria allineato naturalmente per i valori UINT64.

[in] pSrcBuffer

Tipo: ID3D12Resource*

SAL: In

Risorsa copiata dall'elemento dati primario UINT64. Questi dati sono in genere un indirizzo, un indice o un altro handle che il codice shader può usare per individuare la versione più recente delle informazioni sensibili alla latenza.

SrcOffset

Tipo: UINT64

Offset nel buffer di risorse di origine che specifica la posizione in cui l'elemento dati primario viene copiato da, in byte. Questo offset combinato con l'indirizzo di base del buffer di risorse deve comportare un indirizzo di memoria allineato naturalmente per i valori UINT64.

Dependencies

Tipo: UINT

Numero di risorse dipendenti.

[in] ppDependentResources

Tipo: ID3D12Resource*

SAL: In_reads(Dependencies)

Matrice di risorse che contengono gli elementi dipendenti del payload dei dati.

[in] pDependentSubresourceRanges

Tipo: const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL: In_reads(Dependencies)

Matrice di intervalli di sottorisorse che specificano gli elementi dipendenti del payload dei dati. Questi elementi vengono completamente aggiornati prima che l'elemento dati primario venga copiato atomicamente. Ciò garantisce che l'intera operazione sia logicamente atomica; ovvero, l'elemento dati primario non fa mai riferimento a un payload di dati incompleto.

Valore restituito

nessuno

Osservazioni

Questo metodo viene in genere usato per aggiornare le risorse per cui la latenza normale della pipeline di rendering può essere dannosa per l'esperienza utente. Ad esempio, un'applicazione può calcolare una matrice di visualizzazione dall'input utente più recente (ad esempio dai sensori di uno schermo montato sulla testa) e usare questa funzione per aggiornare e attivare questa matrice negli elenchi di comandi già inviati alla GPU per ridurre la latenza percepita tra input e rendering.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d12.h
Libreria D3d12.lib
DLL D3d12.dll

Vedi anche

ID3D12GraphicsCommandList1