ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 方法 (d3d12.h)

将 UINT64 类型的主数据元素以及可选的依赖资源从一个资源原子复制到另一个资源。

这些“依赖资源”之所以命名,是因为它们依赖于主数据元素来查找它们,通常关键元素是间接引用一个或多个依赖资源的地址、索引或其他句柄。

此函数支持 UINT64 (64 位) 类型的主数据元素。 此函数的不同版本 AtomicCopyBufferUINT 支持 UINT 类型的主数据元素 (32 位) 。

语法

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

参数

[in] pDstBuffer

类型: ID3D12Resource*

SALIn

UINT64 主数据元素复制到的资源。

DstOffset

类型: UINT64

目标资源缓冲区的偏移量,指定主数据元素复制到的位置(以字节为单位)。 此偏移量与资源缓冲区的基址相结合,必须生成与 UINT64 值自然对齐的内存地址。

[in] pSrcBuffer

类型: ID3D12Resource*

SALIn

从中复制 UINT64 主数据元素的资源。 此数据通常是着色器代码可用于查找最新版本的延迟敏感信息的地址、索引或其他句柄。

SrcOffset

类型: UINT64

源资源缓冲区的偏移量,指定从何处复制主数据元素(以字节为单位)。 此偏移量与资源缓冲区的基址相结合,必须生成与 UINT64 值自然对齐的内存地址。

Dependencies

类型: UINT

依赖资源的数量。

[in] ppDependentResources

类型: ID3D12Resource*

SALIn_reads(Dependencies)

包含数据有效负载的依赖元素的资源数组。

[in] pDependentSubresourceRanges

类型: const D3D12_SUBRESOURCE_RANGE_UINT64*

SALIn_reads(Dependencies)

子资源范围的数组,指定数据有效负载的依赖元素。 在以原子方式复制主数据元素之前,这些元素将完全更新。 这可确保整个操作在逻辑上是原子的;也就是说,主数据元素永远不会引用不完整的数据有效负载。

返回值

备注

此方法通常用于更新正常的呈现管道延迟可能会损害用户体验的资源。 例如,应用程序可以从最新的用户输入 ((例如从头戴式显示器) 的传感器)计算视图矩阵,并使用此函数在已调度到 GPU 的命令列表中更新和激活此矩阵,以减少输入和呈现之间的感知延迟。

要求

要求
目标平台 Windows
标头 d3d12.h
Library D3d12.lib
DLL D3d12.dll

另请参阅

ID3D12GraphicsCommandList1