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