Método ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 (d3d12.h)

Copia atomicamente um elemento de dados primário do tipo UINT64 de um recurso para outro, juntamente com recursos dependentes opcionais.

Esses "recursos dependentes" são chamados porque dependem do elemento de dados primário para localizá-los, normalmente o elemento de chave é um endereço, índice ou outro identificador que se refere a um ou mais recursos dependentes indiretamente.

Essa função dá suporte a um elemento de dados primário do tipo UINT64 (64 bits). Uma versão diferente dessa função, AtomicCopyBufferUINT, dá suporte a um elemento de dados primário do tipo UINT (32 bits).

Sintaxe

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

Parâmetros

[in] pDstBuffer

Tipo: ID3D12Resource*

SAL: In

O recurso no qual o elemento de dados primário UINT64 é copiado.

DstOffset

Tipo: UINT64

Um deslocamento para o buffer de recursos de destino que especifica onde o elemento de dados primário é copiado, em bytes. Esse deslocamento combinado com o endereço base do buffer de recursos deve resultar em um endereço de memória naturalmente alinhado para valores UINT64.

[in] pSrcBuffer

Tipo: ID3D12Resource*

SAL: In

O recurso do qual o elemento de dados primário UINT64 é copiado. Normalmente, esses dados são um endereço, índice ou outro identificador que o código do sombreador pode usar para localizar a versão mais recente de informações confidenciais de latência.

SrcOffset

Tipo: UINT64

Um deslocamento para o buffer de recurso de origem que especifica de onde o elemento de dados primário é copiado, em bytes. Esse deslocamento combinado com o endereço base do buffer de recursos deve resultar em um endereço de memória naturalmente alinhado para valores UINT64.

Dependencies

Tipo: UINT

O número de recursos dependentes.

[in] ppDependentResources

Tipo: ID3D12Resource*

SAL: In_reads(Dependencies)

Uma matriz de recursos que contém os elementos dependentes da carga de dados.

[in] pDependentSubresourceRanges

Tipo: const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL: In_reads(Dependencies)

Uma matriz de intervalos de sub-recursos que especificam os elementos dependentes da carga de dados. Esses elementos são completamente atualizados antes que o elemento de dados primário seja copiado atomicamente. Isso garante que toda a operação seja logicamente atômica; ou seja, o elemento de dados primário nunca se refere a uma carga de dados incompleta.

Retornar valor

Nenhum

Comentários

Esse método normalmente é usado para atualizar recursos para os quais a latência normal do pipeline de renderização pode ser prejudicial para a experiência do usuário. Por exemplo, um aplicativo pode calcular uma matriz de exibição da entrada mais recente do usuário (como dos sensores de uma tela montada na cabeça) e usar essa função para atualizar e ativar essa matriz em listas de comandos já expedidas para a GPU para reduzir a latência percebida entre entrada e renderização.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d12.h
Biblioteca D3d12.lib
DLL D3d12.dll

Confira também

ID3D12GraphicsCommandList1