Condividi tramite


Metodo ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat (d3d12.h)

Imposta tutti gli elementi in una visualizzazione di accesso non ordinato (UAV) sui valori float specificati.

Importante

Questo comportamento è simile a un'operazione di calcolo in quanto non viene ordinato rispetto al lavoro circostante, ad esempio chiamate Dispatch . Per garantire l'ordinamento, le chiamate di barriera devono essere eseguite prima e/o dopo la chiamata ClearUnorderedAccessViewXxx in base alle esigenze. Potrebbe apparire su alcuni driver che tali barriere non sono necessarie. Ma le barriere implicite non sono una garanzia specifica; quindi non possono essere affidate. Questo comportamento è diverso da ClearDepthStencilView e ClearRenderTargetView , che (come i comandi DrawXxx ), rispettano l'ordinamento degli elenchi di comandi.

Sintassi

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

Parametri

ViewGPUHandleInCurrentHeap

Tipo: [in] D3D12_GPU_DESCRIPTOR_HANDLE

Oggetto D3D12_GPU_DESCRIPTOR_HANDLE che fa riferimento a un descrittore inizializzato per la visualizzazione di accesso non ordinato (UAV) che deve essere cancellata. Questo descrittore deve trovarsi in un heap del descrittore visibile allo shader, che deve essere impostato nell'elenco dei comandi tramite SetDescriptorHeaps.

ViewCPUHandle

Tipo: [in] D3D12_CPU_DESCRIPTOR_HANDLE

Un D3D12_CPU_DESCRIPTOR_HANDLE in un heap del descrittore non shader visibile che fa riferimento a un descrittore inizializzato per la visualizzazione di accesso non ordinato (UAV) che deve essere cancellata.

Importante

Questo descrittore non deve trovarsi in un heap del descrittore visibile allo shader. Ciò consente ai driver che implementano la cancellazione come operazione hardware a funzione fissa (anziché come dispatch) di leggere in modo efficiente dal descrittore, poiché gli heap visibili dello shader possono essere creati in WRITE_BACK memoria (analogamente ai tipi di heap D3D12_HEAP_TYPE_UPLOAD ) e le letture della CPU da questo tipo di memoria sono proibitivemente lente.

pResource

Tipo: [in] ID3D12Resource*

Puntatore all'interfaccia ID3D12Resource che rappresenta la risorsa UAV (Unordered-Access-View) da cancellare.

Values

Tipo: [in] const FLOAT[4]

Matrice a 4 componenti che contiene i valori per riempire la risorsa di visualizzazione non ordinata con accesso.

NumRects

Tipo: [in] UINT

Numero di rettangoli nella matrice specificati dal parametro pRects .

pRects

Tipo: [in] const D3D12_RECT*

Matrice di strutture D3D12_RECT per i rettangoli nella visualizzazione risorse da cancellare. Se NULL, ClearUnorderedAccessViewFloat cancella l'intera visualizzazione risorse.

Valore restituito

nessuno

Osservazioni

Convalida runtime

Per gli input a virgola mobile, il runtime imposta i valori denormalizzati su 0 (mantenendo al tempo stesso nan).

Se si vuole cancellare l'UAV in un modello di bit specifico, è consigliabile usare ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint.

L'errore di convalida genera la chiamata a ID3D12GraphicsCommandList::Close che restituisce E_INVALIDARG.

Livello di debug

Il livello di debug genera errori se i valori di input non rientrano in un intervallo normalizzato.

Il livello di debug genera un errore se le sottorisorse a cui fa riferimento la vista non sono nello stato appropriato. Per ClearUnorderedAccessViewFloat, lo stato deve essere D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d12.h
Libreria D3d12.lib
DLL D3d12.dll

Vedi anche

Interfaccia ID3D12GraphicsCommandList