Compartilhar 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 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_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088