enumerazione D3D12_RESOURCE_FLAGS (d3d12.h)
Definisce le costanti che specificano le opzioni per l'utilizzo delle risorse.
Sintassi
typedef enum D3D12_RESOURCE_FLAGS {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;
Costanti
D3D12_RESOURCE_FLAG_NONE Valore: 0 Nessuna opzione specificata. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Valore: 0x1 Consente la creazione di una visualizzazione di destinazione di rendering per la risorsa; e consente inoltre alla risorsa di passare allo stato di D3D12_RESOURCE_STATE_RENDER_TARGET. Alcune architetture di adattatori allocano memoria aggiuntiva per le trame con questo flag per ridurre la larghezza di banda effettiva durante il rendering comune. Questa caratteristica potrebbe non essere utile per le trame che non vengono mai sottoposte a rendering, né è disponibile per le trame compresse con formati BC. L'applicazione deve evitare di impostare questo flag quando il rendering non si verificherà mai. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Valore: 0x2 Consente la creazione di una visualizzazione depth stencil per la risorsa, nonché consente alla risorsa di passare allo stato di D3D12_RESOURCE_STATE_DEPTH_WRITE e/o D3D12_RESOURCE_STATE_DEPTH_READ. La maggior parte delle architetture di adattatori alloca memoria aggiuntiva per le trame con questo flag per ridurre la larghezza di banda effettiva e ottimizzare le ottimizzazioni per i test di profondità iniziali. L'applicazione deve evitare di impostare questo flag quando le operazioni di profondità non verranno mai eseguite. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Valore: 0x4 Consente la creazione di una visualizzazione di accesso non ordinata per la risorsa, nonché consente alla risorsa di passare allo stato di D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Alcune architetture di adattatori devono ricorrere a layout di trama meno efficienti per fornire questa funzionalità. Se una trama viene usata raramente per l'accesso non ordinato, potrebbe essere opportuno avere due trame e copiarle tra di esse. Una trama avrebbe questo flag, mentre l'altro non lo farebbe. L'applicazione deve evitare di impostare questo flag quando le operazioni di accesso non ordinate non si verificheranno mai. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Valore: 0x8 Impedisce la creazione di una visualizzazione risorse shader per la risorsa, oltre a disabilitare la transizione della risorsa allo stato di D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE o D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Alcune architetture di adattatori ottengono la capacità di larghezza di banda per le trame degli stencil di profondità quando le visualizzazioni delle risorse shader sono esclusi. Se una trama viene usata raramente per le risorse shader, potrebbe essere opportuno avere due trame e copiarle tra di esse. Una trama avrebbe questo flag, mentre l'altro non lo farebbe. L'applicazione deve impostare questo flag quando le trame degli stencil di profondità non verranno mai usate dalle visualizzazioni delle risorse shader. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Valore: 0x10 Consente di usare la risorsa per i dati tra adattatori, nonché le funzionalità abilitate da D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Le risorse tra schede in genere impediscono tecniche che riducono la larghezza di banda effettiva delle trame durante l'utilizzo e alcune architetture di adattatori potrebbero richiedere un comportamento di memorizzazione nella cache diverso. L'applicazione deve evitare di impostare questo flag quando i dati delle risorse non verranno mai usati con un altro adattatore. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS Valore: 0x20 Consente l'accesso simultaneo a una risorsa da più code, dispositivi o processi diversi ( ad esempio, consente l'uso di una risorsa con ResourceBarrier transizioni eseguite in più di un elenco di comandi in esecuzione contemporaneamente). L'accesso simultaneo consente più lettori e un writer, purché il writer non modifichi contemporaneamente i texel a cui accedono altri lettori. Alcune architetture di adattatori non possono sfruttare tecniche per ridurre la larghezza di banda effettiva delle trame durante l'utilizzo. Tuttavia, l'applicazione deve evitare di impostare questo flag quando più lettori non sono necessari durante scritture frequenti e non sovrapposte nelle trame. L'uso di questo flag può compromettere i limiti delle risorse per eseguire attese e impedire l'uso di qualsiasi compressione con una risorsa. Si applicano le restrizioni e le interazioni seguenti:
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Valore: 0x40 Specifica che questa risorsa può essere usata solo come frame di riferimento decodificato. Può essere scritto o letto solo dall'operazione di decodifica video. D3D12_VIDEO_DECODE_TIER_1 e D3D12_VIDEO_DECODE_TIER_2 possono segnalare D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED nel flag di configurazione della struttura D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT. In tal caso, l'applicazione deve allocare frame di riferimento con il flag di risorsa D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. D3D12_VIDEO_DECODE_TIER_3 non deve impostare [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] (.. Flag di configurazione /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) e non deve richiedere l'uso di questo flag di risorsa. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Valore: 0x80 Specifica che questa risorsa può essere usata solo come frame di riferimento di codifica. Può essere scritto o letto solo dall'operazione di codifica video. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Valore: 0x100 Richiede DirectX 12 Agility SDK 1.608.0 o versione successiva. Indica che un buffer deve essere utilizzato come struttura di accelerazione raytracing. Quando si usano barriere avanzate D3D12, questo flag funge da sostituzione per D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE , poiché i buffer non hanno più layout/stati. |
Osservazioni
Questa enumerazione viene utilizzata dal membro flag
Fabbisogno
Requisito | Valore |
---|---|
intestazione |
d3d12.h |