enumerazione D3D12_RESOURCE_FLAGS (d3d12.h)

Definisce le costanti che specificano le opzioni per l'uso 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
Non è stata specificata alcuna opzione.
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
Valore: 0x1
Consente la creazione di una visualizzazione di destinazione di rendering per la risorsa; e consente anche alla risorsa di passare allo stato di D3D12_RESOURCE_STATE_RENDER_TARGET. Alcune architetture dell'adattatore 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 rese a, né è disponibile per 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 stencil di profondità per la risorsa e 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 dell'adattatore alloca memoria aggiuntiva per le trame con questo flag per ridurre la larghezza di banda effettiva e ottimizzare le ottimizzazioni per il test approfondito iniziale. 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 stencil di profondità 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 stencil di profondità a livello di funzionalità corrente.

  • Non è possibile usare D3D12_RESOURCE_DIMENSION_BUFFER, Allineamento 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_64KB_STANDARD_SWIZZLE D3D12_TEXTURE_LAYOUT_ROW_MAJOR né usati con heaps che hanno 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 una sottoregion. CopyTextureRegion deve copiare un'intera sottoresource 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 e consente alla risorsa di passare allo stato di D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Alcune architetture dell'adattatore devono ricorrere a layout di trama meno efficienti per fornire questa funzionalità. Se una trama viene raramente usata per l'accesso non ordinato, potrebbe essere utile avere due trame intorno e copiarle tra di esse. Una trama avrebbe questo flag, mentre l'altro non avrebbe. L'applicazione deve evitare di impostare questo flag quando le operazioni di accesso non ordinate non verranno mai eseguite.

Si applicano le restrizioni e le interazioni seguenti:
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
Valore: 0x8
Impedisce la creazione di una visualizzazione risorsa shader per la risorsa, oltre a disabilitare la risorsa dalla transizione allo stato di D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE o D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Alcune architetture dell'adattatore hanno una maggiore larghezza di banda per le trame stencil di profondità quando le visualizzazioni delle risorse shader sono precluse. Se una trama viene usata raramente per le risorse shader, potrebbe essere utile avere due trame intorno e copiarle tra di esse. Una trama avrebbe questo flag, mentre l'altro non avrebbe. L'applicazione deve impostare questo flag quando le trame dello stencil di profondità non verranno mai usate dalle viste 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 e queste funzionalità abilitate da D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIM_ACCESS. Le risorse tra adattatori in genere impediscono tecniche che riducono la larghezza di banda effettiva della trama durante l'utilizzo e alcune architetture dell'adattatore 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'altra scheda.

Si applicano le restrizioni e le interazioni seguenti:
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
Valore: 0x20
Consente a una risorsa di accedere simultaneamente da più code, dispositivi o processi diversi(ad esempio, consente l'uso di una risorsa con transizioni ResourceBarrier eseguite contemporaneamente in più elenchi di comandi in esecuzione contemporaneamente).

L'accesso simultaneo consente più lettori e uno writer, purché il writer non modifichi simultaneamente i texel a cui accedono altri lettori. Alcune architetture dell'adattatore non possono sfruttare le tecniche per ridurre la larghezza di banda effettiva della trama durante l'utilizzo.

Tuttavia, l'applicazione deve evitare di impostare questo flag quando più lettori non sono necessari durante le scritture frequenti e non sovrapposte alle trame. L'uso di questo flag può compromettere le barriere delle risorse per eseguire attese e impedire l'uso di una compressione con una risorsa.

Si applicano le restrizioni e le interazioni seguenti:

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

  • Non può essere usato con trame MSAA.

  • Impossibile usare 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 decodifica. 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 risorse 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 risorse.
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY
Valore: 0x80
Specifica che questa risorsa può essere usata solo come frame di riferimento codificato. Può essere scritto o letto solo dall'operazione di codifica video.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
Valore: 0x100
Riservato per utilizzi futuri. Non usare.

Richiede DirectX 12 Agility SDK 1.7 o versione successiva. Indica che un buffer deve essere usato come struttura di accelerazione raytracing.

Commenti

Questa enumerazione viene usata dal membro Flag del D3D12_RESOURCE_DESC.

Requisiti

   
Intestazione d3d12.h

Vedi anche