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 às barreiras de textura. Os layouts se aplicam somente aos recursos de textura.
Syntax
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-recurso em que o layout anterior é irrelevante ou indefinido. Normalmente, isso é usado para comandos Clear, Discard e Copy de recursos completos ou de sub-recurso completo. Uma transição de layout com LayoutBefore e LayoutAfter definidos 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 da textura. |
D3D12DDI_BARRIER_LAYOUT_COMMON Esse é o layout usado pelo D3D12_RESOURCE_STATE_COMMON. Os sub-recursos com esse layout são legíveis em qualquer tipo de fila sem a necessidade de 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_COMMON mais geral. Só pode ser usado em barreiras em filas diretas. Observe que isso não pode ser usado para Presente. 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 acessos de origem resolve 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 evitar 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_COMMON mais 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 ao uso comum (sem barreiras) somente em filas de vídeo. Pode ser mais ideal do que o D3D12_BARRIER_LAYOUT_COMMON mais 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 é mapeada para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada é mapeada para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada é mapeada para esse valor. |
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE Dá suporte a um estado de recurso herdado traduzido internamente. Nenhuma APIs de barreira aprimorada é mapeada 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 é mapeada para esse valor. |
Comentários
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 |
---|---|
Cliente mínimo com suporte | Windows 11 (WDDM 3.0) |
Cabeçalho | d3d12umddi.h |