vs_2_x
Un nuanceur de vertex programmable est constitué d’un ensemble d’instructions qui fonctionnent sur les données de vertex. Enregistre les données de transfert dans et hors de l’ALU. Un contrôle supplémentaire peut être appliqué pour modifier l’instruction, les résultats ou les données écrites.
La version vs_2_x du nuanceur de vertex étend l’ensemble de fonctionnalités pris en charge par vs_2_0. Chaque fonctionnalité supplémentaire est représentée par une limite 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 vertex doit être spécifiée en tant que 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 l’ALU du nuanceur de vertex.
- Les modificateurs de registre du nuanceur de vertex sont utilisés pour modifier le fonctionnement d’une instruction.
- Les modificateurs du registre source du nuanceur de vertex modifient les données du registre source avant l’exécution de l’instruction.
- Source Register Swizzling donne un contrôle supplémentaire sur les composants de registre qui sont lus, copiés ou écrits.
- Le masquage du registre de destination détermine les composants du registre de destination à écrire.
Nouvelles fonctionnalités
Les nouvelles fonctionnalités sont les suivantes :
Contrôle de flux dynamique
Si D3DVS20CAPS> 0, les instructions de contrôle de flux dynamique suivantes sont prises en charge :
Si D3DVS20CAPS est également défini, les instructions de contrôle de flux supplémentaires suivantes sont prises en charge :
La plage de valeurs pour la profondeur de contrôle de flux dynamique est comprise entre 0 et 24 et est égale à la profondeur d’imbrication des instructions de contrôle de flux dynamique (pour plus d’informations, consultez Limites d’imbrication du contrôle de flux). Si cette limite est égale à zéro, l’appareil ne prend pas en charge les instructions de contrôle de flux dynamique.
Nombre de registres temporaires
D3DVS20CAPS représente le nombre de registres temporairespris en charge par l’appareil. La plage de valeurs pour cette limite est comprise entre 12 et 32.
Profondeur d’imbrication du contrôle de flux statique
D3DVS20CAPS représente la profondeur d’imbrication de deux types d’instructions de contrôle de flux statique : loop - vs/rep - vs and callnz/bool - vs/if bool - vs. loop - vs/rep - vs instructions peuvent être imbriquées jusqu’à la profondeur D3DVS20CAPS. Indépendamment, l’appel - vs/callnz bool - vs instructions peut être imbriqué jusqu’à la profondeur D3DVS20CAPS. Si D3DVS20CAPS est également défini, callnz pred - vs est compté dans la profondeur d’imbrication de l’appel - vs/callnz bool - vs/if bool - vs (pour plus d’informations, consultez Limites d’imbrication du contrôle de flux ).
Prédicat
Si D3DVS20CAPS est défini, l’appareil prend en charge setp_comp - et la prédication des instructions. Si D3DVS20CAPS est également supérieur à 0, les instructions de contrôle de flux dynamique supplémentaires suivantes sont prises en charge :
Nombre d’instructions
Chaque nuanceur de vertex peut avoir jusqu’à 256 instructions stockées. Le nombre d’instructions exécutées peut être beaucoup plus élevé (en raison de la prise en charge de la boucle/du rep), et est limité par D3DCAPS9, qui doit être au moins 0xFFFF.
Rubriques connexes