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 |