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

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

Esses "recursos dependentes" são chamados assim porque dependem do elemento de dados primário para localizá-los, normalmente o elemento 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 UINT (32bits). Uma versão diferente dessa função, AtomicCopyBufferUINT64, dá suporte a um elemento de dados primário do tipo UINT64 (64bit).

Sintaxe

void AtomicCopyBufferUINT(
  [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 UINT é 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 UINT.

[in] pSrcBuffer

Tipo: ID3D12Resource*

SAL: In

O recurso do qual o elemento de dados primário UINT é 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 UINT.

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.

Valor retornado

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 à experiência do usuário. Por exemplo, um aplicativo pode calcular uma matriz de exibição a partir 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á enviadas para a GPU para reduzir a latência percebida entre entrada e renderização.

Requisitos

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

Confira também

ID3D12GraphicsCommandList1