Partager via


registres ps_3_0

Les nuanceurs de pixels dépendent des registres pour obtenir des données de vertex, de générer des données de pixels, de conserver des résultats temporaires pendant les calculs et d’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 flottants et les registre de coordonnées de textures (t#) ont été consolidés dans celui-ci. 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 vertex) pour ce modèle. Aucune pince n’est effectuée 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 contiendra finalement 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 inverse). 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 prendre une décision quant à la technique d’éclairage à utiliser. L’éclairage à deux côtés peut être réalisé de cette façon. Ce registre nécessite une déclaration. Par conséquent, l’utilisation non déclarée est marquée comme une erreur. Pour les primitives de lignes et de points, ce registre n’est pas défini. Le registre des visages ne peut être utilisé qu’en tant que condition avec les instructions suivantes : setp_comp - ps, if_comp - psou break_comp - ps.

Registre du compteur de boucles

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

Registre de position

Le registre de positions (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. Par conséquent, 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 d’inscription d’entrée

Registre Nom Compter R/W Ports de lecture # Nombre de lectures/inst Dimension RelAddr Par défaut Nécessite la liste de contrôle de contrôle d’accès
v# registre d’entrée 10 R 1 Illimité 4 Al Aucun Oui
r# registre temporaire 32 R/W 3 Illimité 4 Non Aucun Non
c# de registre float constant 224 R 1 Illimité 4 Non 0000 Non
Je# entier entier 16 R 1 1 4 Non 0000 Non
b# registre booléen constant 16 R 1 1 1 Non FAUX Non
p0 Registre de prédicats 1 R 1 1 1 Non Aucun Non
s# Sampler (Direct3D 9 asm-ps) 16 R 1 1 4 Non Voir la note 1 Oui
vFace Face_Register 1 R 1 Illimité 1 Non Aucun Oui
vPos Position_Register 1 R 1 Illimité 4 Non Aucun Oui
Al Loop_Counter_Register 1 R 1 Illimité 1 n/a Aucun Non

 

Notes:

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

Le nombre de lectures est le nombre de registres différents (pour chaque type de registre) qui peuvent être lus dans une seule instruction.

Types de registre de sortie

Registre Nom Compter R/W Dimension RelAddr Par défaut Nécessite la liste de contrôle de contrôle d’accès
Oc# registre de couleurs de sortie Consultez textures à plusieurs éléments (Direct3D 9) W 4 Non Aucun Non
oDepth registre de profondeur de sortie 1 W 1 Non Aucun Non

 

Registres