Compartir a través de


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

Copia de forma atómica un elemento de datos principal de tipo UINT64 de un recurso a otro, junto con recursos dependientes opcionales.

Estos "recursos dependientes" se denominan así porque dependen del elemento de datos principal para localizarlos, normalmente el elemento clave es una dirección, índice u otro identificador que hace referencia a uno o varios recursos dependientes indirectamente.

Esta función admite un elemento de datos principal de tipo UINT64 (64 bits). Otra versión de esta función, AtomicCopyBufferUINT, admite un elemento de datos principal de tipo UINT (32 bits).

Sintaxis

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

Recurso en el que se copia el elemento de datos principal UINT64.

DstOffset

Tipo: UINT64

Desplazamiento en el búfer de recursos de destino que especifica dónde se copia el elemento de datos principal en bytes. Este desplazamiento combinado con la dirección base del búfer de recursos debe dar lugar a una dirección de memoria alineada de forma natural para los valores UINT64.

[in] pSrcBuffer

Tipo: ID3D12Resource*

SAL: In

Recurso del que se copia el elemento de datos principal UINT64. Normalmente, estos datos son una dirección, un índice u otro identificador que el código de sombreador puede usar para buscar la versión más reciente de información confidencial de latencia.

SrcOffset

Tipo: UINT64

Desplazamiento en el búfer de recursos de origen que especifica dónde se copia el elemento de datos principal, en bytes. Este desplazamiento combinado con la dirección base del búfer de recursos debe dar lugar a una dirección de memoria alineada de forma natural para los valores UINT64.

Dependencies

Tipo: UINT

Número de recursos dependientes.

[in] ppDependentResources

Tipo: ID3D12Resource*

SAL: In_reads(Dependencies)

Matriz de recursos que contienen los elementos dependientes de la carga de datos.

[in] pDependentSubresourceRanges

Tipo: const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL: In_reads(Dependencies)

Matriz de intervalos de subrecursos que especifican los elementos dependientes de la carga de datos. Estos elementos se actualizan completamente antes de que el elemento de datos principal se copie atómicamente. Esto garantiza que toda la operación sea lógicamente atómica; es decir, el elemento de datos principal nunca hace referencia a una carga de datos incompleta.

Valor devuelto

None

Observaciones

Este método se usa normalmente para actualizar los recursos para los que la latencia de canalización de representación normal puede ser perjudicial para la experiencia del usuario. Por ejemplo, una aplicación puede calcular una matriz de vista a partir de la entrada de usuario más reciente (por ejemplo, desde los sensores de una pantalla montada con encabezado) y usar esta función para actualizar y activar esta matriz en listas de comandos ya enviadas a la GPU para reducir la latencia percibido entre la entrada y la representación.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d12.h
Library D3d12.lib
Archivo DLL D3d12.dll

Consulte también

ID3D12GraphicsCommandList1