Compartir a través de


enumeración D3D12DDI_BARRIER_ACCESS (d3d12umddi.h)

Un valor de D3D12DDI_BARRIER_ACCESS es un OR bit a bit de los siguientes campos que especifican el acceso a los recursos con respecto a una barrera.

Syntax

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
} ;

Constantes

 
D3D12DDI_BARRIER_ACCESS_COMMON
Valor: 0x0
Acceso inicial predeterminado para todos los recursos de un ámbito ExecuteCommandLists determinado. Admite cualquier tipo de acceso compatible con las propiedades de recursos y diseño actuales, incluido no más de un acceso de escritura. En el caso de los búferes y las texturas mediante D3D12DDI_BARRIER_LAYOUT_COMMON, D3D12DDI_BARRIER_ACCESS_COMMON admite accesos simultáneos de lectura y escritura.

Cuando se usa como AccessAfter, D3D12DDI_BARRIER_ACCESS_COMMON se puede usar para devolver un recurso a accesibilidad común. Tenga en cuenta que esto podría forzar el vaciado de caché innecesario si se usa incorrectamente. Cuando sea posible, AccessAfter debe limitarse a bits de acceso explícitos.

Evite usar D3D12DDI_BARRIER_ACCESS_COMMON como un valor accessBefore de barrera. Los riesgos de lectura después de escritura o escritura después de escritura se controlan mejor mediante bits AccessBefore explícitos.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Valor: 0x1
Se puede acceder a un recurso de búfer de búfer de vértices en la cola de ejecución actual.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Valor: 0x2
Se puede acceder a un recurso de búfer como un búfer constante en la cola de ejecución actual.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Valor: 0x4
Se puede acceder a un recurso de búfer de búfer de índice en la cola de ejecución actual.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Valor: 0x8
Se puede acceder a un recurso como destino de representación.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Valor: 0x10
Un recurso es accesible como un recurso de acceso desordenado.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Valor: 0x20
Un recurso es accesible como un recurso de profundidad y galería de símbolos que se puede escribir.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Valor: 0x40
Se puede acceder a un recurso como un recurso de profundidad/galería de símbolos de solo lectura.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Valor: 0x80
Un recurso es accesible como un recurso de sombreador.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Valor: 0x100
Se puede acceder a un búfer como destino de salida de flujo.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Valor: 0x200
Un búfer es accesible como un búfer de argumentos indirecto.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Valor: 0x200
Un búfer es accesible como un búfer de predicación. Con alias D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Valor: 0x400
Se puede acceder a un recurso como destino de copia.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Valor: 0x800
Se puede acceder a un recurso como origen de copia.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Valor: 0x1000
Se puede acceder a un recurso como destino de resolución.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Valor: 0x2000
Se puede acceder a un recurso como origen de resolución.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Valor: 0x4000
Se puede acceder a un recurso para leer como una estructura de aceleración de seguimiento de rayos. El recurso debe haberse creado con un estado inicial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Valor: 0x8000
Se puede acceder a un recurso para escribir como una estructura de aceleración de seguimiento de rayos. El recurso debe haberse creado con un estado inicial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Valor: 0x10000
Se puede acceder a un recurso como origen de velocidad de sombreado.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Valor: 0x20000
Se puede acceder a un recurso para el acceso de solo lectura en una cola de descodificación de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Valor: 0x40000
Se puede acceder a un recurso para el acceso de escritura en una cola de descodificación de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Valor: 0x80000
Se puede acceder a un recurso para el acceso de solo lectura en una cola de procesos de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Valor: 0x100000
Se puede acceder a un recurso para el acceso de escritura en una cola de procesos de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Valor: 0x200000
Se puede acceder a un recurso para el acceso de solo lectura en una cola de codificación de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Valor: 0x400000
Se puede acceder a un recurso para el acceso de escritura en una cola de codificación de vídeo.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Valor: 0x80000000
No se puede acceder a un recurso para leer o escribir. Una vez que se ha realizado la transición de un acceso subrecurso a D3D12DDI_BARRIER_ACCESS_NO_ACCESS, debe reactivarse mediante una barrera con AccessBefore establecida en D3D12DDI_BARRIER_ACCESS_NO_ACCESS antes de usar en el mismo ámbito ExecuteCommandLists.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS solo se puede usar junto con D3D12DDI_BARRIER_SYNC_NONE o D3D12DDI_BARRIER_SYNC_SPLIT.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS no se puede establecer con otros bits de acceso. D3D12DDI_BARRIER_ACCESS_NO_ACCESS indica que no se espera que se tenga acceso a un recurso hasta alguna barrera posterior o el siguiente ámbito de ECL.

Este valor es útil en las barreras de alias cuando no se necesita un subrecurso durante un tiempo lo suficientemente largo que tiene sentido purgar el subrecurso de cualquier caché de lectura.

También es útil para iniciar una transición de diseño como acto final en un recurso antes del final de un ámbito ExecuteCommandLists. Si SyncAfter está D3D12DDI_BARRIER_SYNC_NONE, AccessAfter DEBE ser D3D12DDI_BARRIER_ACCESS_NO_ACCESS.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11 (WDDM 3.0)
Encabezado d3d12umddi.h

Consulte también

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088