Метод ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 (d3d12.h)

Атомарно копирует основной элемент данных типа UINT64 из одного ресурса в другой вместе с необязательными зависимыми ресурсами.

Эти "зависимые ресурсы" называются так, поскольку они зависят от основного элемента данных для их обнаружения. Обычно ключевым элементом является адрес, индекс или другой дескриптор, который косвенно ссылается на один или несколько зависимых ресурсов.

Эта функция поддерживает основной элемент данных типа UINT64 (64bit). Другая версия этой функции, AtomicCopyBufferUINT, поддерживает основной элемент данных типа UINT (32bit).

Синтаксис

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

Тип: ID3D12Ресурс*

SAL: In

Ресурс, в который копируется основной элемент данных UINT64.

DstOffset

Тип: UINT64

Смещение в буфере ресурсов назначения, указывающее, куда копируется основной элемент данных в байтах. Это смещение в сочетании с базовым адресом буфера ресурсов должно привести к созданию адреса памяти, естественно выровненного по значениям UINT64.

[in] pSrcBuffer

Тип: ID3D12Ресурс*

SAL: In

Ресурс, из который копируется основной элемент данных UINT64. Эти данные обычно являются адресом, индексом или другим дескриптором, который код шейдера может использовать для поиска последней версии конфиденциальной информации о задержке.

SrcOffset

Тип: UINT64

Смещение в буфере исходных ресурсов, указывающее, откуда копируется основной элемент данных в байтах. Это смещение в сочетании с базовым адресом буфера ресурсов должно привести к созданию адреса памяти, естественно выровненного по значениям UINT64.

Dependencies

Тип: UINT

Количество зависимых ресурсов.

[in] ppDependentResources

Тип: ID3D12Ресурс*

SAL: In_reads(Dependencies)

Массив ресурсов, содержащий зависимые элементы полезных данных.

[in] pDependentSubresourceRanges

Тип: const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL: In_reads(Dependencies)

Массив диапазонов подресурсов, определяющих зависимые элементы полезных данных. Эти элементы полностью обновляются до атомарного копирования основного элемента данных. Это гарантирует, что вся операция будет логически атомарной; то есть основной элемент данных никогда не ссылается на неполные полезные данные.

Возвращаемое значение

None

Remarks

Этот метод обычно используется для обновления ресурсов, для которых обычная задержка конвейера отрисовки может негативно повлиять на взаимодействие с пользователем. Например, приложение может вычислить матрицу представления на основе последних входных данных пользователя (например, с датчиков головного дисплея) и использовать эту функцию для обновления и активации этой матрицы в списках команд, уже отправленных в GPU, чтобы уменьшить воспринимаемую задержку между вводом и отрисовкой.

Требования

Требование Значение
Целевая платформа Windows
Header d3d12.h
Библиотека D3d12.lib
DLL D3d12.dll

См. также раздел

ID3D12GraphicsCommandList1