Condividi tramite


D3D12DDI_TEXTURE_BARRIER_0088 struttura (d3d12umddi.h)

Una struttura D3D12DDI_TEXTURE_BARRIER_0088 descrive le transizioni di accesso per le trame.

Sintassi

typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
  D3D12DDI_BARRIER_SYNC                   SyncBefore;
  D3D12DDI_BARRIER_SYNC                   SyncAfter;
  D3D12DDI_BARRIER_ACCESS                 AccessBefore;
  D3D12DDI_BARRIER_ACCESS                 AccessAfter;
  D3D12DDI_BARRIER_LAYOUT                 LayoutBefore;
  D3D12DDI_BARRIER_LAYOUT                 LayoutAfter;
  D3D12DDI_HRESOURCE                      hResource;
  D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
  D3D12DDI_TEXTURE_BARRIER_FLAGS_0088     Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;

Members

SyncBefore

Valore D3D12DDI_BARRIER_SYNC che specifica l'ambito di sincronizzazione di tutte le operazioni GPU precedenti che devono essere completate prima di eseguire la barriera.

SyncAfter

Valore D3D12DDI_BARRIER_SYNC che specifica l'ambito di sincronizzazione di tutte le operazioni GPU successive che devono attendere il completamento dell'esecuzione della barriera.

AccessBefore

Valore D3D12DDI_BARRIER_ACCESS che specifica lo stato di accesso della trama precedente all'esecuzione della barriera.

AccessAfter

Valore D3D12DDI_BARRIER_ACCESS che specifica lo stato di accesso della trama al termine dell'esecuzione della barriera.

LayoutBefore

Valore D3D12DDI_BARRIER_LAYOUT che specifica il layout della trama che precede l'esecuzione della barriera.

LayoutAfter

Valore D3D12DDI_BARRIER_LAYOUT che specifica il layout della trama al termine dell'esecuzione della barriera.

hResource

Handle della risorsa trama usando la barriera.

Subresources

Struttura D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 che specifica l'intervallo di sottoresource della trama che viene barriera.

Flags

Valore D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 che specifica i flag facoltativi.

Commenti

Per informazioni generali, vedere Barriere avanzate .

Sincronizzazione

I processori grafici sono progettati per eseguire il maggior numero possibile di operazioni in parallelo. Qualsiasi lavoro GPU che dipende dal lavoro gpu precedente deve essere sincronizzato prima di accedere ai dati dipendenti. I valori SyncBefore e SyncAfter sono maschere bitfield logiche che identificano qualsiasi lavoro da sincronizzare.

Una barriera deve attendere il completamento di tutti i comandi precedenti SyncBefore prima di eseguire la barriera. Analogamente, una barriera deve bloccare tutti gli ambiti SyncAfter successivi fino al completamento della barriera.

Transizioni di layout

Le sottorisorse trama possono usare layout diversi per vari metodi di accesso. Ad esempio, le trame vengono spesso compresse quando vengono usate come destinazione di rendering o stencil di profondità e spesso non vengono compressi per i comandi di lettura o copia dello shader. Le barriere trama usano LayoutBefore e LayoutAfter per descrivere le transizioni di layout.

Le transizioni di layout sono necessarie solo per le trame, pertanto vengono espresse solo in questa struttura di dati.

LayoutBefore e LayoutAfter devono essere compatibili con il tipo di coda che esegue la barriera. Ad esempio, una coda di calcolo non può eseguire la transizione di un subresource in o fuori D3D12_BARRIER_LAYOUT_RENDER_TARGET.

Per fornire un ordinamento della barriera ben definito, il layout di una sottoresource dopo aver completato una sequenza di barriere è il layout finaleAfter nella sequenza.

Requisiti

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

Vedi anche

D3D12DDI_BARRIER_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088