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 |