estrutura D3D12DDI_TEXTURE_BARRIER_0088 (d3d12umddi.h)
Uma estrutura D3D12DDI_TEXTURE_BARRIER_0088 descreve as transições de acesso para texturas.
Sintaxe
typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
D3D12DDI_BARRIER_SYNC SyncBefore;
D3D12DDI_BARRIER_SYNC SyncAfter;
D3D12DDI_BARRIER_ACCESS AccessBefore;
D3D12DDI_BARRIER_ACCESS AccessAfter;
D3D12DDI_BARRIER_LAYOUT LayoutBefore;
D3D12DDI_BARRIER_LAYOUT LayoutAfter;
D3D12DDI_HRESOURCE hResource;
D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;
Membros
SyncBefore
Um valor D3D12DDI_BARRIER_SYNC que especifica o escopo de sincronização de todos os trabalhos de GPU anteriores que devem ser concluídos antes de executar a barreira.
SyncAfter
Um valor D3D12DDI_BARRIER_SYNC que especifica o escopo de sincronização de todo o trabalho de GPU subsequente que deve aguardar até que a execução da barreira seja concluída.
AccessBefore
Um valor D3D12DDI_BARRIER_ACCESS que especifica o estado de acesso da textura que precede a execução da barreira.
AccessAfter
Um valor D3D12DDI_BARRIER_ACCESS que especifica o estado de acesso da textura após a conclusão da execução da barreira.
LayoutBefore
Um valor D3D12DDI_BARRIER_LAYOUT que especifica o layout da textura que precede a execução da barreira.
LayoutAfter
Um valor D3D12DDI_BARRIER_LAYOUT que especifica o layout da textura após a conclusão da execução da barreira.
hResource
O identificador do recurso de textura usando a barreira.
Subresources
Uma estrutura D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 que especifica o intervalo de sub-recursos de textura que estão sendo barreirados.
Flags
Um valor D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 que especifica sinalizadores opcionais.
Comentários
Consulte Barreiras Aprimoradas para obter informações gerais.
Sincronização
Os processadores de gráficos são projetados para executar o máximo de trabalho em paralelo possível. Qualquer trabalho de GPU que dependa do trabalho de GPU anterior deve ser sincronizado antes de acessar dados dependentes. Os valores SyncBefore e SyncAfter são máscaras lógicas de campo de bits que identificam qualquer trabalho a ser sincronizado.
Uma Barreira deve aguardar a conclusão de todos os escopos syncBefore do comando anterior antes de executar a barreira. Da mesma forma, uma Barreira deve bloquear todos os escopos SyncAfter subsequentes até que a barreira seja concluída.
Transições de layout
Sub-recursos de textura podem usar layouts diferentes para vários métodos de acesso. Por exemplo, as texturas geralmente são compactadas quando usadas como um destino de renderização ou estêncil de profundidade e geralmente são descompactadas para comandos de leitura ou cópia do sombreador. As Barreiras de Textura usam LayoutBefore e LayoutAfter para descrever as transições de layout.
As transições de layout só são necessárias para texturas, portanto, elas são expressas apenas nessa estrutura de dados.
LayoutBefore e LayoutAfter devem ser compatíveis com o tipo de fila que executa a barreira. Por exemplo, uma fila de computação não pode fazer a transição de um sub-recurso para dentro ou para fora de D3D12_BARRIER_LAYOUT_RENDER_TARGET.
Para fornecer ordenação de barreira bem definida, o layout de um sub-recurso após a conclusão de uma sequência de barreiras é o LayoutAfter final na sequência.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11 (WDDM 3.0) |
Cabeçalho | d3d12umddi.h |
Confira também
D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088