Partilhar via


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 todo o trabalho de GPU anterior que deve ser concluído 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 anterior à 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 anterior à 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á sendo barreira.

Flags

Um valor D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 que especifica sinalizadores opcionais.

Observações

Consulte de Barreiras Avançadas para obter informações gerais.

Sincronização

Os processadores 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 de campo de bits lógicas que identificam qualquer trabalho a ser sincronizado.

Uma Barreira deve aguardar que todos os comandos anteriores Escopos do SyncBefore sejam concluídos 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ão necessárias apenas para texturas, portanto, elas são expressas apenas nessa estrutura de dados.

Tanto LayoutBefore quanto 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 uma sub-fonte para dentro ou para fora de D3D12_BARRIER_LAYOUT_RENDER_TARGET.

Para fornecer uma ordenação de barreira bem definida, o layout de um sub-recurso depois de concluir uma sequência de barreiras é o final LayoutAfter na sequência.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 11 (WDDM 3.0)
cabeçalho d3d12umddi.h

Consulte também

D3D12DDI_BARRIER_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088