vs _ 2 _ x
Un nuanceur de sommet programmable est constitué d’un ensemble d’instructions qui fonctionnent sur des données de vertex. Enregistre les données de transfert dans et en dehors de l’ALU. Un contrôle supplémentaire peut être appliqué pour modifier l’instruction, les résultats ou les données qui sont écrites.
La version du nuanceur de sommets vs _ 2 _ x étend l’ensemble des fonctionnalités prises en charge par vs _ 2 _ 0. Chaque fonctionnalité supplémentaire est représentée par une extrémité correspondante dans la structure D3DCAPS9 dans D3DVS20CAPS. Pour utiliser l’une des fonctionnalités améliorées représentées par ces majuscules, la version du nuanceur de sommets doit être spécifiée sous la forme vs _ 2 _ x.
- Instructions-vs _ 2 _ x contient une liste des instructions disponibles.
- Registres-vs _ 2 _ x répertorie les différents types de registres utilisés par le nuanceur de sommets alu.
- Les modificateurs de Registre du nuanceur de sommets permettent de modifier la façon dont une instruction fonctionne.
- Les modificateurs de Registre source du nuanceur de sommets modifient les données du Registre source avant l’exécution de l’instruction.
- Le Registre source Swizzling offre un contrôle supplémentaire sur les composants Register qui sont lus, copiés ou écrits.
- Le masquage du registre de destination détermine les composants du registre de destination qui sont écrits.
Nouvelles fonctionnalités
Les nouvelles fonctionnalités sont les suivantes :
contrôle de Flow dynamique
Si D3DVS20CAPS > 0, les instructions de contrôle de workflow dynamique suivantes sont prises en charge :
Si D3DVS20CAPS est également défini, les instructions de contrôle de Flow supplémentaires suivantes sont prises en charge :
la plage de valeurs pour la profondeur du contrôle de transmission dynamique est comprise entre 0 et 24 et est égale à la profondeur d’imbrication des instructions de contrôle de flow dynamique (pour plus d’informations, consultez Flow limites d’imbrication des contrôles ). Si cette limite est égale à zéro, l’appareil ne prend pas en charge les instructions de contrôle de Flow dynamique.
Nombre de registres temporaires
D3DVS20CAPS représente le nombre de registres temporairespris en charge par l’appareil. La plage de valeurs de cette limite est comprise entre 12 et 32.
profondeur d’imbrication des contrôles de Flow statique
D3DVS20CAPS représente la profondeur d’imbrication de deux types d’instructions de contrôle de Flow statique : Loop-vs / REP-vs et Call-vs / callnz bool-vs / If bool-vs. les instructions Loop-vs/REP-VS peuvent être imbriquées jusqu’à D3DVS20CAPS Deep. De manière indépendante, les instructions Call-vs/callnz bool-VS peuvent être imbriquées jusqu’à D3DVS20CAPS Deep. si D3DVS20CAPS est également défini, callnz prédit-vs est compté vers la profondeur d’imbrication d’call-vs/callnz bool-vs/if bool-vs (voir Flow limites d’imbrication de contrôle pour plus d’informations).
Prédicat
Si D3DVS20CAPS est défini, l’appareil prend en charge setp _ COMP-vs et la prédicat d’instruction. Si D3DVS20CAPS est également supérieur à 0, les instructions de contrôle de workflow dynamique supplémentaires suivantes sont prises en charge :
Nombre d’instructions
Chaque nuanceur de sommets peut avoir jusqu’à 256 instructions stockées. Le nombre d’instructions exécutées peut être bien plus élevé (en raison de la prise en charge de la boucle/REP) et est limité par D3DCAPS9, qui doit être au moins 0xFFFF.