Share via


Assinaturas raiz

A assinatura raiz define quais tipos de recursos estão associados ao pipeline de gráficos.

Nesta seção

Tópico Descrição
Visão geral das assinaturas raiz
Uma assinatura raiz é configurada pelo aplicativo e vincula listas de comandos aos recursos necessários pelos sombreadores. A lista de comandos gráficos tem uma assinatura raiz de computação e elementos gráficos. Uma lista de comandos de computação terá simplesmente uma assinatura raiz de computação. Essas assinaturas raiz são independentes umas das outras.
Como usar uma assinatura raiz
A assinatura raiz é a definição de uma coleção arbitrariamente organizada de tabelas de descritor (incluindo seu layout), constantes raiz e descritores raiz. Cada entrada tem um custo para um limite máximo, portanto, o aplicativo pode trocar o saldo entre quantos de cada tipo de entrada a assinatura raiz conterá.
Como criar uma assinatura raiz
As assinaturas raiz são uma estrutura de dados complexa que contém estruturas aninhadas. Eles podem ser definidos programaticamente usando a definição de estrutura de dados abaixo (que inclui métodos para ajudar a inicializar membros). Como alternativa, eles podem ser criados em HLSL (Linguagem de Sombreamento de Alto Nível), oferecendo a vantagem de que o compilador validará antecipadamente que o layout é compatível com o sombreador.
Limites de assinaturas raiz
A assinatura raiz é um imóvel primo, e há limites e custos estritos a serem considerados.
Como usar constantes diretamente em uma assinatura raiz
Os aplicativos podem definir constantes raiz na assinatura raiz, cada uma como um conjunto de valores de 32 bits. Eles aparecem em HLSL (Linguagem de Sombreamento de Alto Nível) como um buffer constante. Observe que buffers constantes por motivos históricos são exibidos como conjuntos de valores de 4x32 bits.
Como usar descritores diretamente em uma assinatura raiz
Os aplicativos podem colocar descritores diretamente na assinatura raiz para evitar a necessidade de passar por um heap de descritor. Esses descritores têm muito espaço na assinatura raiz (consulte a seção limites de assinatura raiz), portanto, os aplicativos precisam usá-los com moderação.
Assinaturas raiz de exemplo
A seção a seguir mostra assinaturas raiz variando em complexidade de vazio a completamente cheio.
Como especificar assinaturas raiz no HLSL
Especificar assinaturas raiz no Modelo de Sombreador HLSL 5.1 é uma alternativa para especificá-las no código C++.
Assinatura raiz versão 1.1
A finalidade da Assinatura Raiz versão 1.1 é permitir que os aplicativos indiquem aos drivers quando os descritores em um heap de descritor não forem alterados ou os descritores de dados apontarem para não serão alterados. Isso permite que os drivers façam otimizações que podem ser possíveis sabendo que um descritor ou a memória para a qual ele aponta é estático por algum período de tempo.

ID3D12RootSignature

ID3D12RootSignatureDeserializer

Associação de Recursos