Condividi tramite


enumerazione D3D12DDI_BARRIER_ACCESS (d3d12umddi.h)

Un valore D3D12DDI_BARRIER_ACCESS è un OR bit per bit dei campi seguenti che specificano l'accesso alle risorse rispetto a una barriera.

Sintassi

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

Costanti

 
D3D12DDI_BARRIER_ACCESS_COMMON
Valore: 0x0
Accesso iniziale predefinito per tutte le risorse in un determinato ambito ExecuteCommandLists. Supporta qualsiasi tipo di accesso compatibile con il layout corrente e le proprietà delle risorse, incluso non più di un accesso in scrittura. Per i buffer e le trame che usano D3D12DDI_BARRIER_LAYOUT_COMMON, D3D12DDI_BARRIER_ACCESS_COMMON supporta accessi in lettura e scrittura simultanei.

Se usato come AccessAfter, D3D12DDI_BARRIER_ACCESS_COMMON può essere usato per restituire una risorsa all'accessibilità comune. Si noti che questo potrebbe forzare gli scaricamenti della cache non necessari se usato in modo non corretto. Quando possibile, AccessAfter deve essere limitato ai bit di accesso espliciti.

Evitare di usare D3D12DDI_BARRIER_ACCESS_COMMON come valore AccessBefore barriera. Tutti i rischi di lettura-after-write o write-after-write vengono gestiti in modo ottimale usando i bit AccessBefore espliciti.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Valore: 0x1
Una risorsa buffer è accessibile come buffer dei vertici nella coda di esecuzione corrente.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Valore: 0x2
Una risorsa buffer è accessibile come buffer costante nella coda di esecuzione corrente.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Valore: 0x4
Una risorsa buffer è accessibile come buffer di indice nella coda di esecuzione corrente.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Valore: 0x8
Una risorsa è accessibile come destinazione di rendering.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Valore: 0x10
Una risorsa è accessibile come risorsa di accesso non ordinata.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Valore: 0x20
Una risorsa è accessibile come risorsa depth/stencil scrivibile.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Valore: 0x40
Una risorsa è accessibile come risorsa depth/stencil di sola lettura.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Valore: 0x80
Una risorsa è accessibile come risorsa shader.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Valore: 0x100
Un buffer è accessibile come destinazione di output del flusso.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Valore: 0x200
Un buffer è accessibile come buffer di argomenti indiretti.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Valore: 0x200
Un buffer è accessibile come buffer di predicazione. Alias con D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Valore: 0x400
Una risorsa è accessibile come destinazione di copia.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Valore: 0x800
Una risorsa è accessibile come origine di copia.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Valore: 0x1000
Una risorsa è accessibile come destinazione di risoluzione.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Valore: 0x2000
Una risorsa è accessibile come origine di risoluzione.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Valore: 0x4000
Una risorsa è accessibile per la lettura come struttura di accelerazione della traccia dei raggi. La risorsa deve essere stata creata usando uno stato iniziale di D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Valore: 0x8000
Una risorsa è accessibile per la scrittura come struttura di accelerazione ray tracing. La risorsa deve essere stata creata usando uno stato iniziale di D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Valore: 0x10000
Una risorsa è accessibile come origine della frequenza di ombreggiatura.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Valore: 0x20000
Una risorsa è accessibile per l'accesso in sola lettura in una coda di decodifica video.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Valore: 0x40000
Una risorsa è accessibile per l'accesso in scrittura in una coda di decodifica video.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Valore: 0x80000
Una risorsa è accessibile per l'accesso in sola lettura in una coda di processi video.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Valore: 0x100000
Una risorsa è accessibile per l'accesso in scrittura in una coda di processi video.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Valore: 0x200000
Una risorsa è accessibile per l'accesso in sola lettura in una coda di codifica video.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Valore: 0x400000
Una risorsa è accessibile per l'accesso in scrittura in una coda di codifica video.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Valore: 0x80000000
Una risorsa non è accessibile per la lettura o la scrittura. Dopo aver eseguito la transizione di un accesso alla sottorisorsa a D3D12DDI_BARRIER_ACCESS_NO_ACCESS, è necessario riattivarlo da una barriera con AccessBefore impostato su D3D12DDI_BARRIER_ACCESS_NO_ACCESS prima di usare nello stesso ambito ExecuteCommandLists.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS possono essere usati solo in combinazione con D3D12DDI_BARRIER_SYNC_NONE o D3D12DDI_BARRIER_SYNC_SPLIT.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS non può essere impostato con altri bit di accesso. D3D12DDI_BARRIER_ACCESS_NO_ACCESS indica che non è previsto l'accesso a una risorsa fino a quando non si accede a una barriera successiva o all'ambito ECL successivo.

Questo valore è utile nelle barriere di aliasing quando una sottorisorsa non è necessaria per un periodo di tempo sufficientemente lungo che è opportuno eliminare la sottorisorsa da qualsiasi cache di lettura.

È utile anche per avviare una transizione di layout come atto finale su una risorsa prima della fine di un ambito ExecuteCommandLists. Se SyncAfter è D3D12DDI_BARRIER_SYNC_NONE, AccessAfter DEVE essere D3D12DDI_BARRIER_ACCESS_NO_ACCESS.

Requisiti

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

Vedi anche

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088