Метод ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint (d3d12.h)
Задает для всех элементов в представлении с неупорядоченным доступом (UAV) указанные целочисленные значения.
Важно!
Это поведение похоже на вычислительную операцию в том, что она не упорядочена в отношении окружающих работ, таких как вызовы диспетчеризации . Чтобы обеспечить упорядочение, вызовы барьеров должны выполняться до и (или) после вызова ClearUnorderedAccessViewXxx при необходимости. На некоторых драйверах может показаться, что такие барьеры не являются необходимыми. Но неявные барьеры не являются гарантией спецификации; так что на них нельзя полагаться. Это отличается от ClearDepthStencilView и ClearRenderTargetView , которые (как и команды DrawXxx ) учитывают порядок списков команд.
Синтаксис
void ClearUnorderedAccessViewUint(
D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
ID3D12Resource *pResource,
const UINT [4] Values,
UINT NumRects,
const D3D12_RECT *pRects
);
Параметры
ViewGPUHandleInCurrentHeap
Тип: [in] D3D12_GPU_DESCRIPTOR_HANDLE
D3D12_GPU_DESCRIPTOR_HANDLE, ссылающийся на инициализированный дескриптор для представления неупорядоченного доступа (UAV), которое должно быть очищено. Этот дескриптор должен находиться в куче дескрипторов, видимой шейдером, которая должна быть задана в списке команд с помощью SetDescriptorHeaps.
ViewCPUHandle
Тип: [in] D3D12_CPU_DESCRIPTOR_HANDLE
D3D12_CPU_DESCRIPTOR_HANDLE в куче видимых дескрипторов, не являющейся шейдером, которая ссылается на инициализированный дескриптор для представления неупорядоченного доступа (UAV), которое должно быть очищено.
Важно!
Этот дескриптор не должен находиться в куче дескрипторов, видимой для шейдера. Это позволяет драйверам, реализующим очистку как аппаратную операцию с фиксированной функцией (а не как диспетчер), эффективно считывать из дескриптора, так как видимые шейдером кучи могут создаваться в WRITE_BACK памяти (аналогично D3D12_HEAP_TYPE_UPLOAD типам кучи), а операции чтения ЦП из этого типа памяти выполняются слишком медленно.
pResource
Тип: [in] ID3D12Resource*
Указатель на интерфейс ID3D12Resource , представляющий ресурс unordered-access-view (UAV) для очистки.
Values
Тип: [in] const UINT[4]
Массив из 4 компонентов, содержащий значения для заполнения ресурса unordered-access-view.
NumRects
Тип: [in] UINT
Количество прямоугольников в массиве, указанное параметром pRects .
pRects
Тип: [in] const D3D12_RECT*
Массив D3D12_RECT структур для очищенных прямоугольников в представлении ресурсов. Если значение РАВНО NULL, ClearUnorderedAccessViewUint очищает все представление ресурсов.
Возвращаемое значение
None
Remarks
Проверка среды выполнения
Сбой проверки приводит к вызову ID3D12GraphicsCommandList::Close , возвращающего E_INVALIDARG.
Уровень отладки
Уровень отладки выдает ошибки, если входные значения находятся за пределами нормализованного диапазона.
Уровень отладки выдает ошибку, если подресурсы, на которые ссылается представление, не в соответствующем состоянии. Для ClearUnorderedAccessViewUint состояние должно быть D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d12.h |
Библиотека | D3d12.lib |
DLL | D3d12.dll |