Pipelines para Direct3D Versão 11

Esta seção se aplica somente ao Windows 7 e posterior e ao Windows Server 2008 R2 e versões posteriores do sistema operacional Windows.

O pipeline de renderização de gráficos para Direct3D versão 11 é expandido do pipeline de renderização de gráficos para Direct3D versão 10. Além dos núcleos de sombreador programáveis compartilhados com suporte do Direct3D versão 10, o Direct3D versão 11 também dá suporte a núcleos de sombreador de computação, domínio e casco.

O Direct3D versão 11 realmente dá suporte a dois pipelines separados: o pipeline de desenho (pipeline de renderização de gráficos) e o pipeline de expedição (pipeline de sombreador de computação). Os pipelines de desenho e expedição estão tecnicamente livremente conectados no sentido de que você não pode ter o mesmo sub-recurso associado à gravação em ambos os pipelines simultaneamente ou associado à gravação em um pipeline e à leitura no outro pipeline.

A figura a seguir mostra os blocos funcionais do pipeline de desenho do Direct3D versão 11.

Diagrama ilustrando os blocos funcionais do pipeline de desenho do Direct3D versão 11.

A figura a seguir mostra os blocos funcionais do pipeline de expedição para Direct3D versão 11.

Diagrama ilustrando os blocos funcionais do pipeline de expedição do Direct3D versão 11.

As seções a seguir descrevem os blocos new-for-Direct3D 11 mostrados nas figuras anteriores.

{1>Sombreador Hull<1}

O sombreador de casco opera uma vez por patch. Você pode usar o sombreador de casco com patches do assembler de entrada. O sombreador de casco pode transformar pontos de controle de entrada que compõem um patch em pontos de controle de saída. O sombreador de casco pode executar outra configuração para o estágio do mosaico de função fixa. Por exemplo, o sombreador de casco pode gerar fatores tess, que são números que indicam quanto para mosaico.

O runtime do Direct3D chama as seguintes funções de driver para criar, configurar e destruir o sombreador de casco:

Mosaico

O mosaico é uma unidade de função fixa cuja operação é definida por declarações no sombreador de casco. O mosaico opera uma vez por patch que é gerado pelo sombreador de casco. O sombreador de casco gera fatores tess, que são números que notificam o mosaico quanto para mosaico (gerar geometria e conectividade) sobre o domínio do patch.

O runtime do Direct3D chama a função CalcPrivateTessellationShaderSize do driver para calcular o tamanho da região de memória de um sombreador de casco ou domínio.

Sombreador de domínio

O sombreador de domínio é invocado uma vez por vértice, que é gerado pelo mosaico. Cada invocação é identificada por sua coordenada em um domínio genérico. A função do sombreador de domínio é transformar essa coordenada em algo tangível (como um ponto no espaço 3D) para usar o fluxo inferior do sombreador de domínio. Cada invocação de sombreador de domínio para um patch também acessa a entrada compartilhada de toda a saída do sombreador de casco (como pontos de controle de saída).

O runtime do Direct3D chama as seguintes funções de driver para criar, configurar e destruir o sombreador de domínio:

Sombreador de Computação

O sombreador de computação permite que a GPU seja exibida como uma grade genérica de processadores paralelos de dados, sem nenhum impedimento gráfico do pipeline de desenho. O sombreador de computação tem acesso explícito à memória compartilhada rápida para facilitar a comunicação entre grupos de invocações de sombreador. O sombreador de computação também tem a capacidade de executar leituras e gravações dispersas na memória. A disponibilidade de operações atômicas permite acesso exclusivo a endereços de memória compartilhados. O sombreador de computação não faz parte do pipeline de desenho. O sombreador de computação existe por conta própria. No entanto, o sombreador de computação existe no mesmo dispositivo que todos os outros estágios do sombreador. O runtime do Direct3D chama as funções DispatchXxx do driver em vez das funções DrawXxx do driver para invocar o sombreador de computação.

O runtime do Direct3D chama as seguintes funções de driver para criar, configurar e destruir o sombreador de computação:

Exibições de recursos de acesso não ordenado

Exibições de recursos de acesso não ordenado são recursos de leitura/gravação que você pode associar ao sombreador de computação ou sombreador de pixels. A associação de exibições de recursos de acesso não ordenado é semelhante a como você pode associar exibições de recursos de sombreador, que são recursos somente leitura, a qualquer estágio de sombreador.

O runtime do Direct3D chama as seguintes funções de driver para criar, configurar e destruir exibições de recursos de acesso não ordenado: