D3D12DDI_BARRIER_LAYOUT enumeração (d3d12umddi.h)
Um valor D3D12DDI_BARRIER_LAYOUT descreve os possíveis layouts usados pelos sub-recursos D3D12 em relação a barreiras de textura. Os layouts se aplicam somente aos recursos de textura.
Sintaxe
typedef enum D3D12DDI_BARRIER_LAYOUT {
D3D12DDI_BARRIER_LAYOUT_UNDEFINED,
D3D12DDI_BARRIER_LAYOUT_COMMON,
D3D12DDI_BARRIER_LAYOUT_PRESENT,
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE,
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE,
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;
Constantes
D3D12DDI_BARRIER_LAYOUT_UNDEFINED Fornece suporte para alterações de layout de sub-fonte em que o layout anterior é irrelevante ou indefinido. Normalmente, isso é usado para comandos Clear, Discard e Copy de recursos completos ou sub-recursos completos. Uma transição de layout com LayoutBefore e LayoutAfter definida como D3D12_BARRIER_LAYOUT_UNDEFINED indica uma barreira somente de acesso à memória. Muitas operações de leitura/gravação dão suporte a D3D12_BARRIER_LAYOUT_COMMON. Em particular, os comandos Copy podem gravar em texturas usando o D3D12_BARRIER_LAYOUT_COMMON ou D3D12_BARRIER_LAYOUT_COPY. Uma barreira somente de acesso à memória pode ser usada para liberar gravações de cópia em uma textura sem alterar o layout de textura. |
D3D12DDI_BARRIER_LAYOUT_COMMON Esse é o layout usado por D3D12_RESOURCE_STATE_COMMON. Sub-recursos com esse layout são legíveis em qualquer tipo de fila sem exigir uma alteração de layout. Eles também podem ser gravados como um destino de cópia em qualquer tipo de fila. A apresentação da cadeia de troca requer que o buffer de fundo esteja usando D3D12_BARRIER_LAYOUT_COMMON. |
D3D12DDI_BARRIER_LAYOUT_PRESENT Alias para D3D12_BARRIER_LAYOUT_COMMON. |
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ Fornece suporte para qualquer acesso somente leitura (por exemplo: SHADER_RESOURCE, COPY_SOURCE). Esse valor só deve ser usado para texturas que exigem vários acessos de leitura simultâneos, pois isso pode não ser tão ideal quanto um layout de leitura mais específico. |
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET Corresponde ao layout usado por D3D12_RESOURCE_STATE_RENDER_TARGET. |
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS Corresponde ao layout usado por D3D12_RESOURCE_STATE_UNORDERED_ACCESS. |
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE Corresponde ao layout usado por D3D12_RESOURCE_STATE_DEPTH_WRITE. |
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ Corresponde ao layout usado por D3D12_RESOURCE_STATE_DEPTH_READ. |
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE Corresponde ao layout usado por D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE e D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE. |
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE Corresponde ao layout usado por D3D12_RESOURCE_STATE_COPY_SOURCE. |
D3D12DDI_BARRIER_LAYOUT_COPY_DEST Corresponde ao layout usado por D3D12_RESOURCE_STATE_COPY_DEST. |
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE Corresponde ao layout usado por D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE. |
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST Corresponde ao layout usado por D3D12DDI_RESOURCE_STATE_RESOLVE_DEST. |
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE Corresponde ao layout usado por D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_DECODE_READ. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE Corresponde ao layout usado por D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON Dá suporte ao uso comum (sem barreiras) somente em filas diretas. Esse valor é mais ideal do que o D3D12DDI_BARRIER_LAYOUT_COMMONmais geral. Só pode ser usado em barreiras em filas diretas. Observe que isso não pode ser usado para o Present. D3D12_BARRIER_LAYOUT_COMMON (também conhecido como D3D12_BARRIER_LAYOUT_PRESENT) ainda é o layout necessário para Apresentação. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ O mesmo que D3D12_BARRIER_LAYOUT_GENERIC_READ exceto com otimizações específicas para filas diretas. Só pode ser usado em barreiras em filas diretas. Além disso, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ inclui suporte para profundidade somente leitura, fonte de taxa de sombreamento e resolução de acessos de origem em filas diretas. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS O mesmo que D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS exceto com otimizações específicas para filas diretas. Só pode ser usado em barreiras em filas diretas. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE O mesmo que D3D12_BARRIER_LAYOUT_SHADER_RESOURCE exceto com otimizações específicas para filas diretas. Só pode ser usado em barreiras em filas diretas. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE O mesmo que D3D12_BARRIER_LAYOUT_COPY_SOURCE exceto com otimizações específicas para filas diretas. Só pode ser usado em barreiras em filas diretas. |
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST O mesmo que D3D12_BARRIER_LAYOUT_COPY_DEST exceto com otimizações específicas para filas diretas. Só pode ser usado em barreiras em filas diretas. Pode impedir a descompactação dispendiosa e desnecessária em algumas transições de layout em recursos com o próximo acesso em uma fila Direta. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON Dá suporte ao uso comum (sem barreiras) somente em filas de computação. Pode ser mais ideal do que o D3D12_BARRIER_LAYOUT_COMMONmais geral. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ O mesmo que D3D12_BARRIER_LAYOUT_GENERIC_READ exceto com otimizações específicas para filas de computação. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS O mesmo que D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS exceto com otimizações específicas para filas de computação. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE O mesmo que D3D12_BARRIER_LAYOUT_SHADER_RESOURCE exceto com otimizações específicas para filas de computação. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE O mesmo que D3D12_BARRIER_LAYOUT_COPY_SOURCE exceto com otimizações específicas para filas de computação. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST O mesmo que D3D12_BARRIER_LAYOUT_COPY_DEST exceto com otimizações específicas para filas de computação. Só pode ser usado em barreiras em filas de computação. |
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON Dá suporte apenas ao uso comum (sem barreiras) em filas de vídeo. Pode ser mais ideal do que o D3D12_BARRIER_LAYOUT_COMMONmais geral. Só pode ser usado em barreiras em filas de vídeo. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada mapeia para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada mapeia para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada mapeia para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada mapeia para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada mapeia para esse valor. |
Observações
Os recursos de buffer têm apenas um layout linear, independentemente do tipo de acesso.
Os layouts de recurso devem ser compatíveis com o tipo de fila que executa a transição de layout.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 11 (WDDM 3.0) |
cabeçalho | d3d12umddi.h |