Signatures racine

La signature racine définit les types de ressources liés au pipeline graphique.

Contenu de cette section

Rubrique Description
Vue d’ensemble des signatures racine
Une signature racine est configurée par l’application et lie les listes de commandes aux ressources requises par les nuanceurs. La liste de commandes graphiques a une signature graphique et racine de calcul. Une liste de commandes de calcul aura simplement une signature racine de calcul. Ces signatures racines sont indépendantes les unes des autres.
Utilisation d’une signature racine
La signature racine est la définition d’une collection arbitraire de tables de descripteurs (y compris leur disposition), de constantes racines et de descripteurs racines. Chaque entrée a un coût par rapport à une limite maximale, de sorte que l’application peut compenser l’équilibre entre le nombre de chaque type d’entrée que la signature racine contiendra.
Création d’une signature racine
Les signatures racines sont une structure de données complexe contenant des structures imbriquées. Ceux-ci peuvent être définis par programmation à l’aide de la définition de structure de données ci-dessous (qui comprend des méthodes pour aider à initialiser les membres). Elles peuvent également être créées en HLSL (High Level Shading Language), ce qui donne l’avantage que le compilateur valide rapidement que la disposition est compatible avec le nuanceur.
Limites de signature racine
La signature racine est un immobilier de premier choix, et il existe des limites et des coûts stricts à prendre en compte.
Utilisation des constantes directement dans la signature racine
Les applications peuvent définir des constantes racines dans la signature racine, chacune sous la forme d’un ensemble de valeurs 32 bits. Ils apparaissent dans le langage HLSL (High Level Shading Language) en tant que mémoire tampon constante. Notez que les mémoires tampons constantes pour des raisons historiques sont vues comme des ensembles de valeurs 4x32 bits.
Utilisation des descripteurs directement dans la signature racine
Les applications peuvent placer des descripteurs directement dans la signature racine pour éviter d’avoir à passer par un tas de descripteurs. Ces descripteurs prennent beaucoup d’espace dans la signature racine (voir la section Limites de signature racine). Les applications doivent donc les utiliser avec parcimonie.
Exemples de signatures racine
La section suivante présente les signatures racines qui varient en complexité, du vide au complet.
Spécification de signatures racine en langage HLSL
La spécification de signatures racines dans HLSL Shader Model 5.1 est une alternative à leur spécification en code C++.
Signature racine version 1.1
L’objectif de la signature racine version 1.1 est de permettre aux applications d’indiquer aux pilotes quand les descripteurs d’un tas de descripteurs ne changent pas ou quand les descripteurs de données pointent sur ne changent pas. Cela permet aux pilotes d’effectuer des optimisations qui peuvent être possibles, sachant qu’un descripteur ou la mémoire vers laquelle il pointe est statique pendant un certain temps.

ID3D12RootSignature

ID3D12RootSignatureDeserializer

Liaison de ressources