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


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

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

Интерфейс ID3D12GraphicsCommandList