Freigeben über


ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat-Methode (d3d12.h)

Legt alle Elemente in einer ungeordneten Zugriffsansicht (UAV) auf die angegebenen Float-Werte fest.

Von Bedeutung

Dies verhält sich wie ein Berechnungsvorgang, da er nicht in Bezug auf die umgebende Arbeit wie z . B. Dispatch-Aufrufe sortiert ist. Um die Bestellung sicherzustellen, müssen Barriereanrufe nach Bedarf vor und/oder nach dem ClearUnorderedAccessViewXxx-Aufruf ausgegeben werden. Es kann auf einigen Faktoren vorkommen, dass solche Barrieren nicht notwendig sind. Implizite Barrieren sind jedoch keine Spezifikationsgarantie; so können sie sich nicht verlassen. Dies ist im Gegensatz zu ClearDepthStencilView und ClearRenderTargetView , die (wie DrawXxx-Befehle ) die Reihenfolge der Befehlslisten respektieren.

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
);

Die Parameter

ViewGPUHandleInCurrentHeap

Typ: [in] D3D12_GPU_DESCRIPTOR_HANDLE

Eine D3D12_GPU_DESCRIPTOR_HANDLE , die auf einen initialisierten Deskriptor für die ungeordnete Zugriffsansicht (UAV) verweist, die gelöscht werden soll. Dieser Deskriptor muss sich in einem Shader-Visible-Deskriptor-Heap befinden, der über SetDescriptorHeaps in der Befehlsliste festgelegt werden muss.

ViewCPUHandle

Typ: [in] D3D12_CPU_DESCRIPTOR_HANDLE

Ein D3D12_CPU_DESCRIPTOR_HANDLE in einem nicht shader sichtbaren Deskriptor heap, der auf einen initialisierten Deskriptor für die ungeordnete Zugriffsansicht (UAV) verweist, die gelöscht werden soll.

Von Bedeutung

Dieser Deskriptor darf sich nicht in einem Shader-sichtbaren Deskriptor-Heap befinden. Dies ist die Möglichkeit, Treibern zu ermöglichen, die das Löschen als Hardwarevorgang mit fester Funktion (und nicht als Verteiler) implementieren, um effizient vom Deskriptor zu lesen, da Shader-sichtbare Heaps im WRITE_COMBINE Speicher (ähnlich wie D3D12_HEAP_TYPE_UPLOAD Heap-Typen) erstellt werden können, und CPU-Lesevorgänge aus diesem Speichertyp sind unerschwinglich langsam.

pResource

Typ: [in] ID3D12Resource*

Ein Zeiger auf die ID3D12Resource-Schnittstelle , die die ungeordnete Zugriffsansichtsressource (UAV) darstellt, die gelöscht werden soll.

Values

Typ: [in] const FLOAT[4]

Ein 4-Komponentenarray, das die Werte enthält, mit denen die ungeordnete Access-Ansichtsressource ausgefüllt werden soll.

NumRects

Typ: [in] UINT

Die Anzahl der Rechtecke im Array, das der Parameter pRects angibt.

pRects

Typ: [in] const D3D12_RECT*

Ein Array von D3D12_RECT Strukturen für die Rechtecke in der Ressourcenansicht zu löschen. Wenn NULL, löscht ClearUnorderedAccessViewFloat die gesamte Ressourcenansicht.

Rückgabewert

Nichts

Bemerkungen

Laufzeitüberprüfung

Bei Gleitkommaeingaben legt die Laufzeit denormalisierte Werte auf 0 fest (während NANs beibehalten werden).

Wenn Sie die UAV auf ein bestimmtes Bitmuster löschen möchten, sollten Sie id3D12GraphicsCommandList::ClearUnorderedAccessViewUint verwenden.

Der Überprüfungsfehler führt zum Aufruf von ID3D12GraphicsCommandList::Close returning E_INVALIDARG.

Debugebene

Die Debugebene gibt Fehler aus, wenn sich die Eingabewerte außerhalb eines normalisierten Bereichs befinden.

Die Debugebene gibt einen Fehler aus, wenn sich die untergeordneten Ressourcen, auf die von der Ansicht verwiesen wird, nicht im entsprechenden Zustand befinden. Für ClearUnorderedAccessViewFloat muss der Zustand D3D12_RESOURCE_STATE_UNORDERED_ACCESS sein.

Anforderungen

Anforderung Wert
Zielplattform Fenster
Header d3d12.h
Library D3d12.lib
DLL D3d12.dll

Siehe auch

ID3D12GraphicsCommandList-Schnittstelle