Метод 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 |