enumerazione D3D12_RESOURCE_STATES (d3d12.h)
Definisce le costanti che specificano lo stato di una risorsa in relazione alla modalità di utilizzo della risorsa.
Sintassi
typedef enum D3D12_RESOURCE_STATES {
D3D12_RESOURCE_STATE_COMMON = 0,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000,
D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE,
D3D12_RESOURCE_STATE_PRESENT = 0,
D3D12_RESOURCE_STATE_PREDICATION = 0x200,
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
} ;
Costanti
D3D12_RESOURCE_STATE_COMMON Valore: 0 L'applicazione deve passare a questo stato solo per l'accesso a una risorsa in diversi tipi di motore grafico. In particolare, una risorsa deve trovarsi nello stato COMMON prima di essere usata in una coda COPY (se usata in precedenza in DIRECT/COMPUTE) e prima di essere usata in DIRECT/COMPUTE (se in precedenza usata in COPY). Questa restrizione non esiste quando si accede ai dati tra code DIRECT e COMPUTE. Lo stato COMMON può essere usato per tutti gli utilizzi in una coda di copia usando le transizioni di stato implicite. Per altre informazioni, nella sincronizzazione multi-motore trovare "common". Inoltre, le trame devono trovarsi nello stato COMMON affinché l'accesso alla CPU sia legale, presupponendo che la trama sia stata creata in un heap visibile alla CPU al primo posto. |
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER Valore: 0x1 Una sottorisorsa deve trovarsi in questo stato quando si accede alla GPU come vertex buffer o buffer costante. Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_INDEX_BUFFER Valore: 0x2 Una sottorisorsa deve trovarsi in questo stato quando si accede dalla pipeline 3D come buffer di indice. Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_RENDER_TARGET Valore: 0x4 La risorsa viene usata come destinazione di rendering. Una sottorisorsa deve trovarsi in questo stato quando viene eseguito il rendering o quando viene cancellata con ID3D12GraphicsCommandList::ClearRenderTargetView. Si tratta di uno stato di sola scrittura. Per leggere da una destinazione di rendering come risorsa shader, la risorsa deve trovarsi in D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE o D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. |
D3D12_RESOURCE_STATE_UNORDERED_ACCESS Valore: 0x8 La risorsa viene usata per l'accesso non ordinato. Una sottorisorsa deve trovarsi in questo stato quando è accessibile dalla GPU tramite una visualizzazione di accesso non ordinata. Anche una sottorisorsa deve trovarsi in questo stato quando viene cancellata con ID3D12GraphicsCommandList::ClearUnorderedAccessViewInt o ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat. Si tratta di uno stato di lettura/scrittura. |
D3D12_RESOURCE_STATE_DEPTH_WRITE Valore: 0x10 D3D12_RESOURCE_STATE_DEPTH_WRITE è uno stato che si escludono a vicenda con altri stati. È consigliabile usarlo per ID3D12GraphicsCommandList::ClearDepthStencilView quando i flag (vedere D3D12_CLEAR_FLAGS) indicano che una determinata sottorisorsa deve essere cancellata (in caso contrario lo stato della sottorisorsa non è rilevante) o quando lo usano in una visualizzazione stencil di profondità scrivibile (vedere D3D12_DSV_FLAGS) quando pso ha la scrittura approfondita abilitata (vedere D3D12_DEPTH_STENCIL_DESC). |
D3D12_RESOURCE_STATE_DEPTH_READ Valore: 0x20 DEPTH_READ è uno stato che può essere combinato con altri stati. Deve essere usata quando la sottorisorsa si trova in una visualizzazione stencil di sola lettura o quando la scrittura approfondita di D3D12_DEPTH_STENCIL_DESC è disabilitata. Può essere combinato con altri stati di lettura (ad esempio , D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE), in modo che la risorsa possa essere usata per il test depth o stencil e accessibile da uno shader all'interno della stessa chiamata di disegno. Usarlo quando la profondità verrà scritta da una chiamata di disegno o da un comando clear non è valida. |
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE Valore: 0x40 La risorsa viene usata con uno shader diverso da pixel shader. Una sottorisorsa deve trovarsi in questo stato prima di essere letta da qualsiasi fase (ad eccezione della fase del pixel shader) tramite una visualizzazione risorse shader. È comunque possibile usare la risorsa in un pixel shader con questo flag purché sia impostato anche il flag D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE . Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE Valore: 0x80 La risorsa viene usata con un pixel shader. Una sottorisorsa deve essere in questo stato prima di essere letta dal pixel shader tramite una visualizzazione risorse shader. Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_STREAM_OUT Valore: 0x100 La risorsa viene usata con l'output del flusso. Una sottorisorsa deve trovarsi in questo stato quando si accede dalla pipeline 3D come destinazione di uscita del flusso. Si tratta di uno stato di sola scrittura. |
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT Valore: 0x200 La risorsa viene usata come argomento indiretto. Le sottorisorse devono trovarsi in questo stato quando vengono usate come buffer di argomenti passato al metodo di disegno indiretto ID3D12GraphicsCommandList::ExecuteIndirect. Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_COPY_DEST Valore: 0x400 La risorsa viene usata come destinazione in un'operazione di copia. Le sottorisorse devono trovarsi in questo stato quando vengono usate come destinazione dell'operazione di copia o come operazione blt. Si tratta di uno stato di sola scrittura. |
D3D12_RESOURCE_STATE_COPY_SOURCE Valore: 0x800 La risorsa viene usata come origine in un'operazione di copia. Le sottorisorse devono trovarsi in questo stato quando vengono usate come origine dell'operazione di copia o come operazione blt. Si tratta di uno stato di sola lettura. |
D3D12_RESOURCE_STATE_RESOLVE_DEST Valore: 0x1000 La risorsa viene usata come destinazione in un'operazione di risoluzione. |
D3D12_RESOURCE_STATE_RESOLVE_SOURCE Valore: 0x2000 La risorsa viene usata come origine in un'operazione di risoluzione. |
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE Valore: 0x400000 Quando un buffer viene creato con questo stato iniziale, indica che la risorsa è una struttura di accelerazione raytracing, da usare in ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure, ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure o ID3D12Device::CreateShaderResourceView per la dimensione D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE . NOTA Una risorsa da usare per lo stato D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE deve essere creata in tale stato e quindi non è mai stata eseguita la transizione. Né una risorsa creata non in tale stato può essere inserita in tale stato. Per altre informazioni, vedi Limitazioni della memoria della struttura di accelerazione nella specifica funzionale DXR (DirectX Raytracing) su GitHub. |
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE Valore: 0x1000000 A partire da Windows 10 versione 1903 (10.0; Build 18362), indica che la risorsa è un'immagine di ombreggiatura dello spazio dello schermo per l'ombreggiatura a velocità variabile (VRS). Per altre info, vedi Ombreggiatura a velocità variabile (VRS). |
D3D12_RESOURCE_STATE_GENERIC_READ D3D12_RESOURCE_STATE_GENERIC_READ è una combinazione logicamente OR di altri bit di stato di lettura. Questo è lo stato iniziale necessario per un heap di caricamento. L'applicazione dovrebbe in genere evitare la transizione a D3D12_RESOURCE_STATE_GENERIC_READ quando possibile, poiché ciò può causare svuotamenti prematuri della cache o modifiche al layout delle risorse (ad esempio, compressione/decompressione), causando blocchi di pipeline non necessari. È invece consigliabile eseguire la transizione delle risorse solo agli stati effettivamente usati. |
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE Equivalente a D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE . |
D3D12_RESOURCE_STATE_PRESENT Valore: 0 Sinonimo di D3D12_RESOURCE_STATE_COMMON. |
D3D12_RESOURCE_STATE_PREDICATION Valore: 0x200 La risorsa viene usata per predicazione. |
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ Valore: 0x10000 La risorsa viene usata come origine in un'operazione di decodifica. Gli esempi includono la lettura del flusso di bit compresso e la lettura da riferimenti di decodifica, |
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE Valore: 0x20000 La risorsa viene usata come destinazione nell'operazione di decodifica. Questo stato viene usato per decodificare l'output e gli istogrammi. |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ Valore: 0x40000 La risorsa viene usata per leggere i dati video durante l'elaborazione video; ovvero, la risorsa viene usata come origine in un'operazione di elaborazione, ad esempio la codifica video (compressione). |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE Valore: 0x80000 La risorsa viene usata per scrivere dati video durante l'elaborazione video; ovvero, la risorsa viene usata come destinazione in un'operazione di elaborazione, ad esempio la codifica video (compressione). |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ Valore: 0x200000 La risorsa viene usata come origine in un'operazione di codifica. Questo stato viene usato per l'input e il riferimento della stima del movimento. |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE Valore: 0x800000 Questa risorsa viene usata come destinazione in un'operazione di codifica. Questo stato viene usato per la trama di destinazione di un'operazione heap del vettore di movimento di risoluzione. |
Commenti
Questa enumerazione viene utilizzata dai metodi seguenti:
Requisiti
Intestazione | d3d12.h |