Condividi tramite


enumerazione D3D12DDI_BARRIER_LAYOUT (d3d12umddi.h)

Un valore D3D12DDI_BARRIER_LAYOUT descrive i layout possibili usati dalle sottorisorse D3D12 rispetto alle barriere di trama. I layout si applicano solo alle risorse di trama.

Sintassi

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED,
  D3D12DDI_BARRIER_LAYOUT_COMMON,
  D3D12DDI_BARRIER_LAYOUT_PRESENT,
  D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
  D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
  D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
  D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

Costanti

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
Fornisce il supporto per le modifiche del layout di sottorisorsa in cui il layout precedente è irrilevante o non definito. In genere, viene usato per i comandi Clear, Discard e Copy completi di sottorisorse o risorse complete.

Una transizione di layout con LayoutBefore e LayoutAfter impostata su D3D12_BARRIER_LAYOUT_UNDEFINED indica una barriera di sola accesso alla memoria. Molte operazioni di lettura/scrittura supportano D3D12_BARRIER_LAYOUT_COMMON. In particolare, i comandi Copy possono scrivere in trame usando il D3D12_BARRIER_LAYOUT_COMMON o D3D12_BARRIER_LAYOUT_COPY. È possibile usare una barriera di sola accesso alla memoria per scaricare le scritture di copia in una trama senza modificare il layout della trama.
D3D12DDI_BARRIER_LAYOUT_COMMON
Questo è il layout usato da D3D12_RESOURCE_STATE_COMMON. Le sottorisorse con questo layout sono leggibili in qualsiasi tipo di coda senza richiedere una modifica del layout. Sono anche scrivibili come destinazione di copia in qualsiasi tipo di coda.

La presentazione della catena di scambio richiede che il buffer nascosto usi D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Alias per D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Fornisce il supporto per qualsiasi accesso di sola lettura, ad esempio SHADER_RESOURCE, COPY_SOURCE. Questo valore deve essere usato solo per le trame che richiedono più accessi in lettura simultanei, perché questo potrebbe non essere ottimale come un layout di lettura più specifico.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
Corrisponde al layout usato da D3D12_RESOURCE_STATE_RENDER_TARGET.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
Trova la corrispondenza con il layout usato da D3D12_RESOURCE_STATE_DEPTH_WRITE.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_DEPTH_READ.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
Corrisponde al layout usato da D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE e D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_COPY_SOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_COPY_DEST.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
Corrisponde al layout usato da D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
Corrisponde al layout utilizzato da D3D12DDI_RESOURCE_STATE_RESOLVE_DEST.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
Trova la corrispondenza con il layout utilizzato da D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
Trova la corrispondenza con il layout usato da D3D12_RESOURCE_STATE_VIDEO_DECODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
Corrisponde al layout utilizzato da D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
Trova la corrispondenza con il layout usato da D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
Trova la corrispondenza con il layout utilizzato da D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
Supporta l'utilizzo comune (senza barriere) solo nelle code dirette. Questo valore è più ottimale del D3D12DDI_BARRIER_LAYOUT_COMMON più generale. Può essere usato solo nelle barriere nelle code dirette.

Si noti che questo non può essere utilizzato per Present. D3D12_BARRIER_LAYOUT_COMMON (noto anche come D3D12_BARRIER_LAYOUT_PRESENT) è ancora il layout richiesto per Presentation.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
Uguale a D3D12_BARRIER_LAYOUT_GENERIC_READ ad eccezione delle ottimizzazioni specifiche per le code dirette. Può essere usato solo nelle barriere nelle code dirette.

Inoltre, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ include il supporto per la profondità di sola lettura, l'origine della frequenza di ombreggiatura e risolvere gli accessi all'origine nelle code dirette.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
Uguale a D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS ad eccezione delle ottimizzazioni specifiche per le code dirette. Può essere usato solo nelle barriere nelle code dirette.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
Uguale a D3D12_BARRIER_LAYOUT_SHADER_RESOURCE ad eccezione delle ottimizzazioni specifiche per le code dirette. Può essere usato solo nelle barriere nelle code dirette.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
Uguale a D3D12_BARRIER_LAYOUT_COPY_SOURCE ad eccezione delle ottimizzazioni specifiche per le code dirette. Può essere usato solo nelle barriere nelle code dirette.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
Uguale a D3D12_BARRIER_LAYOUT_COPY_DEST ad eccezione delle ottimizzazioni specifiche per le code dirette. Può essere usato solo nelle barriere nelle code dirette. Può impedire la decompressione costosa e non necessaria in alcune transizioni di layout sulle risorse con accesso successivo in una coda diretta.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Supporta l'utilizzo comune (senza barriere) solo nelle code di calcolo. Può essere più ottimale del D3D12_BARRIER_LAYOUT_COMMON più generale. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
Uguale a D3D12_BARRIER_LAYOUT_GENERIC_READ ad eccezione delle ottimizzazioni specifiche per le code di calcolo. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
Uguale a D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS ad eccezione delle ottimizzazioni specifiche per le code di calcolo. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
Uguale a D3D12_BARRIER_LAYOUT_SHADER_RESOURCE ad eccezione delle ottimizzazioni specifiche per le code di calcolo. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
Uguale a D3D12_BARRIER_LAYOUT_COPY_SOURCE ad eccezione delle ottimizzazioni specifiche per le code di calcolo. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
Uguale a D3D12_BARRIER_LAYOUT_COPY_DEST ad eccezione delle ottimizzazioni specifiche per le code di calcolo. Può essere usato solo nelle barriere nelle code di calcolo.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
Supporta l'utilizzo comune (senza barriere) solo nelle code video. Può essere più ottimale del D3D12_BARRIER_LAYOUT_COMMON più generale. Può essere usato solo nelle barriere nelle code video.
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
Supporta uno stato di risorsa legacy convertito internamente. Nessuna API barriera avanzata viene mappata a questo valore.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Supporta uno stato di risorsa legacy convertito internamente. Nessuna API barriera avanzata viene mappata a questo valore.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
Supporta uno stato di risorsa legacy convertito internamente. Nessuna API barriera avanzata viene mappata a questo valore.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
Supporta uno stato di risorsa legacy convertito internamente. Nessuna API barriera avanzata viene mappata a questo valore.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
Supporta uno stato di risorsa legacy convertito internamente. Nessuna API barriera avanzata viene mappata a questo valore.

Commenti

Le risorse del buffer hanno solo un layout lineare, indipendentemente dal tipo di accesso.

I layout delle risorse devono essere compatibili con il tipo di coda che esegue la transizione del layout.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 (WDDM 3.0)
Intestazione d3d12umddi.h

Vedi anche

D3D12DDI_TEXTURE_BARRIER_0088