registres ps_3_0

Les nuanceurs de pixels dépendent des registres pour obtenir des données de vertex, pour générer des données de pixels, pour conserver des résultats temporaires pendant les calculs et pour identifier les étapes d’échantillonnage de texture. Il existe plusieurs types de registres, chacun avec une fonctionnalité unique. Cette section contient des informations de référence pour les registres d’entrée et de sortie implémentés par le nuanceur de pixels version 3_0.

Nouveaux registres

Registre d’entrée

Les registres d’entrée (v#) sont désormais entièrement à virgule flottante et les registres de coordonnéesde texture (t#) y ont été consolidés. Le dcl_semantics (sm3 - ps asm) en haut du nuanceur est utilisé pour décrire ce qui est contenu dans un Input_Register particulier. Une sémantique pour les types de pixels est introduite (analogue au côté du sommet) pour ce modèle. Aucun serrage n’est effectué lorsque les registres d’entrée sont définis en tant que couleurs (comme les coordonnées de texture). L’évaluation des registres définis en tant que couleur diffère des coordonnées de texture lors de l’échantillonnage multiple.

Registre des visages

Le registre de visages (vFace) est nouveau pour ce modèle. Il s’agit d’un registre scalaire à virgule flottante qui finira par contenir la zone primitive. Toutefois, dans ps_3_0, seul le signe de ce registre est valide. Par conséquent, si la valeur est inférieure à zéro (le bit de signe est défini négatif), la primitive est la face arrière (la zone est négative, dans le sens contraire des aiguilles d’une montre). Par conséquent, dans ps_3_0 il est logique de comparer ce registre à 0 (> 0 ou < 0). À l’intérieur du nuanceur de pixels, l’application peut décider de la technique d’éclairage à utiliser. L’éclairage bidirectionnel peut être obtenu de cette façon. Ce registre nécessite une déclaration, de sorte que l’utilisation non déclarée est marquée comme une erreur. Pour les lignes et les primitives de points, ce registre n’est pas défini. Le registre de visages ne peut être utilisé qu’en tant que condition avec les instructions suivantes : setp_comp - ps, if_comp - ps ou break_comp - ps.

Registre du compteur de boucles

Le registre du compteur de boucles (aL) est nouveau pour ce modèle. Il est incrémenté automatiquement à chaque exécution de la boucle - ps/endloop - bloc ps . Il peut être utilisé dans le bloc pour l’adressage relatif si nécessaire. L’utilisation du registre du compteur de boucles en dehors de la boucle n’est pas valide.

Registre de position

Le registre de position (vPos) est nouveau pour ce modèle. Il contient les pixels actuels (x, y) dans les canaux correspondants. Les canaux (z, w) ne sont pas définis. Ce registre nécessite une déclaration, de sorte que l’utilisation non déclarée est marquée comme une erreur. Lorsqu’il est déclaré, ce registre doit avoir exactement l’un des masques suivants : .x, .y, .xy.

Types de registre d’entrée

S’inscrire Nom Count R/W (Lecture/écriture) Nombre de ports de lecture Nombre de lectures/inst Dimension RelAddr Valeurs par défaut Nécessite la liste de contrôle de contrôle d’accès
C # Registre d’entrée 10 R 1 Illimité 4 Al Aucune Oui
R # Registre temporaire 32 R/W (Lecture/écriture) 3 Illimité 4 Non None Non
c# Registre float constant 224 R 1 Illimité 4 Non 0000 Non
Je # Registre d’entiers constants 16 R 1 1 4 Non 0000 Non
B # Registre booléen constant 16 R 1 1 1 Non FALSE Non
p0 Registre du prédicat 1 R 1 1 1 Non None Non
s # Sampler (Direct3D 9 asm-ps) 16 R 1 1 4 Non Voir la remarque 1 Oui
vFace Face_Register 1 R 1 Illimité 1 Non None Oui
vPos Position_Register 1 R 1 Illimité 4 Non None Oui
Al Loop_Counter_Register 1 R 1 Illimité 1 n/a Aucun Non

 

Remarques :

  • Les valeurs par défaut pour les recherches d’échantillonneur existent, mais les valeurs dépendent du format de texture.

Le nombre de readports correspond au nombre de registres différents (pour chaque type de registre) qui peuvent être lus dans une seule instruction.

Types de registre de sortie

S’inscrire Nom Count R/W (Lecture/écriture) Dimension RelAddr Valeurs par défaut Nécessite la liste de contrôle
Oc # Registre des couleurs de sortie Consultez Textures à éléments multiples (Direct3D 9) W 4 Non None Non
oDepth Registre de profondeur de sortie 1 W 1 Non None Non

 

Registres