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:

  • Il formato della trama deve supportare funzionalità di depth stencil a livello di funzionalità corrente. In alternativa, quando il formato è un formato senza tipi, un formato all'interno dello stesso gruppo senza tipi deve supportare funzionalità di depth stencil a livello di funzionalità corrente.

  • Non è possibile usare con D3D12_RESOURCE_DIMENSION_BUFFER, allineamento da 4 KB, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, né usato con heap con D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES o D3D12_HEAP_FLAG_ALLOW_DISPLAY.

  • Impedisce l'utilizzo di WriteToSubresource e ReadFromSubresource.

  • Impedisce la copia della GPU di un'area secondaria. CopyTextureRegion deve copiare un'intera sottorisorsa in o da risorse con questo flag.

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:

  • Deve essere usato con D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

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:

  • Non è possibile usare con D3D12_RESOURCE_DIMENSION_BUFFER; ma i buffer hanno sempre le proprietà rappresentate da questo flag.

  • Non è possibile usare con trame MSAA.

  • Non è possibile usare con D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

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 del D3D12_RESOURCE_DESC.

Fabbisogno

Requisito Valore
intestazione d3d12.h

Vedere anche