Поделиться через


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

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

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

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

Синтаксис

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

Параметры

[in] pDstBuffer

Тип: ID3D12Resource*

SAL: In

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

DstOffset

Тип: UINT64

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

[in] pSrcBuffer

Тип: ID3D12Resource*

SAL: In

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

SrcOffset

Тип: UINT64

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

Dependencies

Тип: UINT

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

[in] ppDependentResources

Тип: ID3D12Resource*

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