ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat method (d3d12.h)

Sets all of the elements in an unordered-access view (UAV) to the specified float values.

Important

This behaves like a compute operation in that it isn't ordered with respect to surrounding work such as Dispatch calls. To ensure ordering, barrier calls must be issued before and/or after the ClearUnorderedAccessViewXxx call as needed. It might appear on some drivers that such barriers aren't necessary. But implicit barriers are not a spec guarantee; so they can't be relied upon. This is in contrast to ClearDepthStencilView and ClearRenderTargetView which (like DrawXxx commands), respect command list ordering.

Syntax

void ClearUnorderedAccessViewFloat(
  D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  ID3D12Resource              *pResource,
  const FLOAT [4]             Values,
  UINT                        NumRects,
  const D3D12_RECT            *pRects
);

Parameters

ViewGPUHandleInCurrentHeap

Type: [in] D3D12_GPU_DESCRIPTOR_HANDLE

A D3D12_GPU_DESCRIPTOR_HANDLE that references an initialized descriptor for the unordered-access view (UAV) that is to be cleared. This descriptor must be in a shader-visible descriptor heap, which must be set on the command list via SetDescriptorHeaps.

ViewCPUHandle

Type: [in] D3D12_CPU_DESCRIPTOR_HANDLE

A D3D12_CPU_DESCRIPTOR_HANDLE in a non-shader visible descriptor heap that references an initialized descriptor for the unordered-access view (UAV) that is to be cleared.

Important

This descriptor must not be in a shader-visible descriptor heap. This is to allow drivers that implement the clear as a fixed-function hardware operation (rather than as a dispatch) to efficiently read from the descriptor, as shader-visible heaps may be created in WRITE_BACK memory (similar to D3D12_HEAP_TYPE_UPLOAD heap types), and CPU reads from this type of memory are prohibitively slow.

pResource

Type: [in] ID3D12Resource*

A pointer to the ID3D12Resource interface that represents the unordered-access-view (UAV) resource to clear.

Values

Type: [in] const FLOAT[4]

A 4-component array that containing the values to fill the unordered-access-view resource with.

NumRects

Type: [in] UINT

The number of rectangles in the array that the pRects parameter specifies.

pRects

Type: [in] const D3D12_RECT*

An array of D3D12_RECT structures for the rectangles in the resource view to clear. If NULL, ClearUnorderedAccessViewFloat clears the entire resource view.

Return value

None

Remarks

Runtime validation

For floating-point inputs, the runtime sets denormalized values to 0 (while preserving NANs).

If you want to clear the UAV to a specific bit pattern, consider using ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint.

Validation failure results in the call to ID3D12GraphicsCommandList::Close returning E_INVALIDARG.

Debug layer

The debug layer issues errors if the input values are outside of a normalized range.

The debug layer issues an error if the subresources referenced by the view aren't in the appropriate state. For ClearUnorderedAccessViewFloat, the state must be D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

Requirements

Requirement Value
Target Platform Windows
Header d3d12.h
Library D3d12.lib
DLL D3d12.dll

See also

ID3D12GraphicsCommandList interface