Compartilhar via


D3D12DDI_BARRIER_ACCESS enumeração (d3d12umddi.h)

Um valor D3D12DDI_BARRIER_ACCESS é um OR bit a bit dos campos a seguir que especificam o acesso a recursos em relação a uma barreira.

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
O acesso inicial padrão para todos os recursos em um determinado escopo ExecuteCommandLists. Dá suporte a qualquer tipo de acesso compatível com o layout atual e as propriedades de recurso, incluindo não mais do que um acesso de gravação. Para buffers e texturas que usam D3D12DDI_BARRIER_LAYOUT_COMMON, D3D12DDI_BARRIER_ACCESS_COMMON dá suporte a acessos simultâneos de leitura e gravação.

Quando usado como AccessAfter, D3D12DDI_BARRIER_ACCESS_COMMON pode ser usado para retornar um recurso à acessibilidade comum. Observe que isso pode forçar liberações de cache desnecessárias se usadas incorretamente. Quando possível, AccessAfter deve ser limitado a bits de acesso explícitos.

Evite usar D3D12DDI_BARRIER_ACCESS_COMMON como um valor accessBefore de barreira. Qualquer risco de leitura após gravação ou gravação após gravação é melhor tratado usando bits AccessBefore explícitos.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Valor: 0x1
Um recurso de buffer é acessível como um buffer de vértice na fila de execução atual.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Valor: 0x2
Um recurso de buffer é acessível como um buffer constante na fila de execução atual.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Valor: 0x4
Um recurso de buffer é acessível como um buffer de índice na fila de execução atual.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Valor: 0x8
Um recurso é acessível como um destino de renderização.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Valor: 0x10
Um recurso é acessível como um recurso de acesso não ordenado.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Valor: 0x20
Um recurso é acessível como um recurso de profundidade/estêncil gravável.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Valor: 0x40
Um recurso é acessível como um recurso de profundidade/estêncil somente leitura.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Valor: 0x80
Um recurso é acessível como um recurso de sombreador.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Valor: 0x100
Um buffer é acessível como um destino de saída de fluxo.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Valor: 0x200
Um buffer é acessível como um buffer de argumento indireto.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Valor: 0x200
Um buffer é acessível como um buffer de pré-indicação. Com alias com D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Valor: 0x400
Um recurso pode ser acessado como um destino de cópia.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Valor: 0x800
Um recurso pode ser acessado como uma fonte de cópia.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Valor: 0x1000
Um recurso é acessível como um destino resolve.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Valor: 0x2000
Um recurso pode ser acessado como uma fonte de resolve.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Valor: 0x4000
Um recurso é acessível para leitura como uma estrutura de aceleração de rastreamento de raios. O recurso deve ter sido criado usando um estado inicial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Valor: 0x8000
Um recurso é acessível para gravação como uma estrutura de aceleração de rastreamento de raios. O recurso deve ter sido criado usando um estado inicial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Valor: 0x10000
Um recurso é acessível como uma fonte de taxa de sombreamento.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Valor: 0x20000
Um recurso é acessível para acesso somente leitura em uma fila de decodificação de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Valor: 0x40000
Um recurso é acessível para acesso de gravação em uma fila de decodificação de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Valor: 0x80000
Um recurso é acessível para acesso somente leitura em uma fila de processo de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Valor: 0x100000
Um recurso é acessível para acesso de gravação em uma fila de processo de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Valor: 0x200000
Um recurso é acessível para acesso somente leitura em uma fila de codificação de vídeo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Valor: 0x400000
Um recurso é acessível para acesso de gravação em uma fila de codificação de vídeo.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Valor: 0x80000000
Um recurso está inacessível para leitura ou gravação. Depois que um acesso de sub-recurso tiver sido transferido para D3D12DDI_BARRIER_ACCESS_NO_ACCESS, ele deverá ser reativado por uma barreira com AccessBefore definido como D3D12DDI_BARRIER_ACCESS_NO_ACCESS antes de usar no mesmo escopo ExecuteCommandLists.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS só pode ser usado em conjunto com D3D12DDI_BARRIER_SYNC_NONE ou D3D12DDI_BARRIER_SYNC_SPLIT.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS não pode ser definido com outros bits de acesso. D3D12DDI_BARRIER_ACCESS_NO_ACCESS indica que não se espera que um recurso seja acessado até alguma barreira subsequente ou o próximo escopo de ECL.

Esse valor é útil em barreiras de alias quando um sub-recurso não é necessário por um tempo suficientemente longo que faz sentido limpar o sub-recurso de qualquer cache de leitura.

Também é útil para iniciar uma transição de layout como o ato final em um recurso antes do final de um escopo ExecuteCommandLists. Se SyncAfter for D3D12DDI_BARRIER_SYNC_NONE, AccessAfter DEVERÁ ser D3D12DDI_BARRIER_ACCESS_NO_ACCESS.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11 (WDDM 3.0)
Cabeçalho d3d12umddi.h

Confira também

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088