Freigeben über


ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat-Methode (d3d12.h)

Legt alle Elemente in einer ungeordneten Zugriffsansicht (UAV) auf die angegebenen Floatwerte fest.

Wichtig

Dies verhält sich wie ein Computevorgang, da er nicht in Bezug auf umgebende Arbeit wie z. B . Dispatch-Aufrufe geordnet ist. Um die Reihenfolge sicherzustellen, müssen Barriereanrufe nach Bedarf vor und/oder nach dem ClearUnorderedAccessViewXxx-Aufruf ausgegeben werden. Bei einigen Treibern kann es vorkommen, dass solche Barrieren nicht notwendig sind. Implizite Barrieren sind jedoch keine Spezifikationsgarantie; daher kann man sich nicht auf sie verlassen. Dies steht im Gegensatz zu ClearDepthStencilView und ClearRenderTargetView , die (wie DrawXxx-Befehle ) die Befehlslistenreihenfolge berücksichtigen.

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

Parameter

ViewGPUHandleInCurrentHeap

Typ: [in] D3D12_GPU_DESCRIPTOR_HANDLE

Ein D3D12_GPU_DESCRIPTOR_HANDLE , der auf einen initialisierten Deskriptor für die ungeordnete Zugriffsansicht (UAV) verweist, die gelöscht werden soll. Dieser Deskriptor muss sich in einem shader-sichtbaren Deskriptorheap 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 Deskriptorheap, der auf einen initialisierten Deskriptor für die ungeordnete Zugriffsansicht (UAV) verweist, die gelöscht werden soll.

Wichtig

Dieser Deskriptor darf sich nicht in einem shader-sichtbaren Deskriptorheap befinden. Dadurch können Treiber, die clear als Hardwarevorgang mit fester Funktion (und nicht als Dispatch) implementieren, effizient aus dem Deskriptor lesen, da shader-sichtbare Heaps in WRITE_BACK Arbeitsspeicher erstellt werden können (ähnlich wie D3D12_HEAP_TYPE_UPLOAD Heaptypen), und CPU-Lesevorgänge aus diesem Speichertyp sind unerschwinglich langsam.

pResource

Typ: [in] ID3D12Resource*

Ein Zeiger auf die ID3D12Resource-Schnittstelle , die die zu löschende UAV-Ressource (Unordered Access-View) darstellt.

Values

Typ: [in] const FLOAT[4]

Ein Array mit 4 Komponenten, das die Werte enthält, mit denen die Ressource unordered-access-view gefüllt werden soll.

NumRects

Typ: [in] UINT

Die Anzahl der Rechtecke im Array, die der pRects-Parameter angibt.

pRects

Typ: [in] const D3D12_RECT*

Ein Array von D3D12_RECT Strukturen für die Zu löschenden Rechtecke in der Ressourcenansicht. Bei NULLlöscht ClearUnorderedAccessViewFloat die gesamte Ressourcenansicht.

Rückgabewert

Keine

Bemerkungen

Laufzeitüberprüfung

Für Gleitkommaeingaben legt die Laufzeit denormalisierte Werte auf 0 fest (wobei NANs beibehalten werden).

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

Überprüfungsfehler führen dazu, dass der Aufruf von ID3D12GraphicsCommandList::CloseE_INVALIDARG zurückgibt.

Debugebene

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

Die Debugebene gibt einen Fehler aus, wenn die von der Ansicht referenzierten Unterressourcen nicht den entsprechenden Zustand aufweisen. Für ClearUnorderedAccessViewFloat muss der Status D3D12_RESOURCE_STATE_UNORDERED_ACCESS sein.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3d12.lib
DLL D3d12.dll

Weitere Informationen

ID3D12GraphicsCommandList-Schnittstelle