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 |