Flow Contrôler les limites d’imbrication
Les instructions de contrôle de workflow de nuanceur de sommets présentent deux restrictions spéciales. Les profondeurs d’imbrication limitent le nombre d’instructions qui peuvent être appelées l’une à l’autre. En outre, chaque instruction a un nombre d’emplacements d’instructions qui s’applique au nombre maximal d’instructions qu’un nuanceur peut prendre en charge.
Notes
Lorsque vous utilisez les * _ _ _ _ _ profils de nuanceur HLSL de 4 niveaux 9 x, vous utilisez implicitement les profils Shader Model 2. x pour prendre en charge le matériel compatible Direct3D 9. Les profils Shader Model 2. x prennent en charge un comportement de contrôle de Flow plus limité que le modèle de nuanceur 4. x et versions ultérieures.
Nombre de niveaux par instruction pour vs _ 2 _ 0
Chaque instruction compte sur une ou plusieurs limites de profondeur d’imbrication. Ce tableau indique le nombre de profondeurs que chaque instruction ajoute ou soustrait de la profondeur existante :
| Instruction | Imbrication statique | Imbrication dynamique | imbrication de boucles/REP | appeler l’imbrication | Nombre de flows statiques |
|---|---|---|---|---|---|
| Si bool-vs | 0 | 0 | 0 | 0 | 1 |
| Si _ COMP-vs | n/a | n/a | n/a | n/a | n/a |
| Si prédit-vs | n/a | n/a | n/a | n/a | n/a |
| else-vs | 0 | 0 | 0 | 0 | 1 (si bool-vs uniquement) |
| endif-vs | -1 | 0 | 0 | 0 | 0 |
| REP-vs | 0 | 0 | 1 | 0 | 1 |
| endrep-vs | 0 | 0 | -1 | 0 | 0 |
| boucle-vs | 0 | 0 | 1 | 0 | 1 |
| ENDLOOP-vs | 0 | 0 | -1 | 0 | 0 |
| Break-vs | n/a | n/a | n/a | n/a | n/a |
| arrêt _ COMP-vs | n/a | n/a | n/a | n/a | n/a |
| breakp-vs | n/a | n/a | n/a | n/a | n/a |
| appel-vs | 0 | 0 | 0 | 1 | 1 |
| callnz bool-vs | 0 | 0 | 0 | 1 | 1 |
| callnz prédit-vs | n/a | n/a | n/a | n/a | n/a |
| RET-vs | 0 | 0 | 0 | -1 | 0 |
| _COMP setp-vs | n/a | n/a | n/a | n/a | n/a |
Profondeur d’imbrication
Profondeur d’imbrication définissez le nombre d’instructions qui peuvent être appelées l’une à l’autre. Chaque type d’instruction a une ou plusieurs limites d’imbrication :
| Type d’instruction | Maximum |
|---|---|
| Imbrication statique | Limité uniquement par le nombre de flows statiques |
| Imbrication dynamique | n/a |
| imbrication de boucles/REP | 1 |
| appeler l’imbrication | 1 |
| Nombre de flows statiques | 16 |
Nombre de niveaux par instruction pour vs _ 2 _ x
Chaque instruction compte sur une ou plusieurs limites de profondeur d’imbrication. Ce tableau indique le nombre de profondeurs que chaque instruction ajoute ou soustrait de la profondeur existante :
| Instruction | Imbrication statique | Imbrication dynamique | imbrication de boucles/REP | appeler l’imbrication | Nombre de flows statiques |
|---|---|---|---|---|---|
| Si bool-vs | 1 | 0 | 0 | 0 | 1 |
| Si _ COMP-vs | 0 | 1 | 0 | 0 | 0 |
| Si prédit-vs | 0 | 1 | 0 | 0 | 0 |
| else-vs | 0 | 0 | 0 | 0 | 1 (si bool-vs uniquement) |
| endif-vs | -1 (si bool-vs) | -1 (si prédit-vs ou si _ COMP-vs) | 0 | 0 | 0 |
| REP-vs | 0 | 0 | 1 | 0 | 1 |
| endrep-vs | 0 | 0 | -1 | 0 | 0 |
| boucle-vs | 0 | 0 | 1 | 0 | 1 |
| ENDLOOP-vs | 0 | 0 | -1 | 0 | 0 |
| Break-vs | 0 | 0 | 0 | 0 | 0 |
| arrêt _ COMP-vs | 0 | 1,-1 | 0 | 0 | 0 |
| breakp-vs | 0 | 0 | 0 | 0 | 0 |
| appel-vs | 0 | 0 | 0 | 1 | 1 |
| callnz bool-vs | 0 | 0 | 0 | 1 | 1 |
| callnz prédit-vs | 0 | 1 | 0 | 1 | 0 |
| RET-vs | 0 | -1 (callnz prédit-vs) | 0 | -1 | 0 |
| _COMP setp-vs | 0 | 0 | 0 | 0 | 0 |
Profondeur d’imbrication
Profondeur d’imbrication définissez le nombre d’instructions qui peuvent être appelées l’une à l’autre. Chaque type d’instruction a une ou plusieurs limites d’imbrication :
| Type d’instruction | Maximum |
|---|---|
| Imbrication statique | Limité uniquement par le nombre de flows statiques |
| Imbrication dynamique | 0 ou 24, consultez D3DCAPS9. VS20Caps.DynamicFlowControlDepth |
| imbrication de boucles/REP | de 1 à 4, consultez D3DCAPS9. VS20Caps.StaticFlowControlDepth |
| appeler l’imbrication | de 1 à 4, consultez D3DCAPS9. VS20Caps. StaticFlowControlDepth (indépendant de la limite de boucle/REP) |
| Nombre de flows statiques | 16 |
Nombre de niveaux par instruction pour vs _ 2 _ SW
Chaque instruction compte sur une ou plusieurs limites de profondeur d’imbrication. Ce tableau indique le nombre de profondeurs que chaque instruction ajoute ou soustrait de la profondeur existante :
| Instruction | Imbrication statique | Imbrication dynamique | imbrication de boucles/REP | appeler l’imbrication | Nombre de flows statiques |
|---|---|---|---|---|---|
| Si bool-vs | 1 | 0 | 0 | 0 | n/a |
| Si _ COMP-vs | 0 | 1 | 0 | 0 | n/a |
| Si prédit-vs | 0 | 1 | 0 | 0 | n/a |
| else-vs | 0 | 0 | 0 | 0 | n/a |
| endif-vs | -1 (si bool-vs) | -1 (si prédit-vs ou si _ COMP-vs) | 0 | 0 | n/a |
| REP-vs | 0 | 0 | 1 | 0 | n/a |
| endrep-vs | 0 | 0 | -1 | 0 | n/a |
| boucle-vs | 0 | 0 | 1 | 0 | n/a |
| ENDLOOP-vs | 0 | 0 | -1 | 0 | n/a |
| Break-vs | 0 | 0 | 0 | 0 | n/a |
| arrêt _ COMP-vs | 0 | 1,-1 | 0 | 0 | n/a |
| breakp-vs | 0 | 0 | 0 | 0 | n/a |
| appel-vs | 0 | 0 | 0 | 1 | n/a |
| callnz bool-vs | 0 | 0 | 0 | 1 | n/a |
| callnz prédit-vs | 0 | 1 | 0 | 1 | n/a |
| RET-vs | 0 | -1 (callnz prédit-vs) | 0 | -1 | n/a |
| _COMP setp-vs | 0 | 0 | 0 | 0 | n/a |
Profondeur d’imbrication
Profondeur d’imbrication définissez le nombre d’instructions qui peuvent être appelées l’une à l’autre. Chaque type d’instruction a une ou plusieurs limites d’imbrication :
| Type d’instruction | Maximum |
|---|---|
| Imbrication statique | 24 |
| Imbrication dynamique | 24 |
| imbrication de boucles/REP | 4 |
| appeler l’imbrication | 4 |
| Nombre de flows statiques | Aucune limite |
Nombre de niveaux par instruction pour vs _ 3 _ 0
Chaque instruction compte sur une ou plusieurs limites de profondeur d’imbrication. Ce tableau indique le nombre de profondeurs que chaque instruction ajoute ou soustrait de la profondeur existante :
| Instruction | Imbrication statique | Imbrication dynamique | imbrication de boucles/REP | appeler l’imbrication | Nombre de flows statiques |
|---|---|---|---|---|---|
| Si bool-vs | 1 | 0 | 0 | 0 | n/a |
| Si _ COMP-vs | 0 | 1 | 0 | 0 | n/a |
| Si prédit-vs | 0 | 1 | 0 | 0 | n/a |
| else-vs | 0 | 0 | 0 | 0 | n/a |
| endif-vs | -1 (si bool-vs) | -1 (si prédit-vs ou si _ COMP-vs) | 0 | 0 | n/a |
| REP-vs | 0 | 0 | 1 | 0 | n/a |
| endrep-vs | 0 | 0 | -1 | 0 | n/a |
| boucle-vs | 0 | 0 | 1 | 0 | n/a |
| ENDLOOP-vs | 0 | 0 | -1 | 0 | n/a |
| Break-vs | 0 | 0 | 0 | 0 | n/a |
| arrêt _ COMP-vs | 0 | 1,-1 | 0 | 0 | n/a |
| breakp-vs | 0 | 0 | 0 | 0 | n/a |
| appel-vs | 0 | 0 | 0 | 1 | n/a |
| callnz bool-vs | 0 | 0 | 0 | 1 | n/a |
| callnz prédit-vs | 0 | 1 | 0 | 1 | n/a |
| RET-vs | 0 | -1 (callnz prédit-vs) | 0 | -1 | n/a |
| _COMP setp-vs | 0 | 0 | 0 | 0 | n/a |
Profondeur d’imbrication
Profondeur d’imbrication définissez le nombre d’instructions qui peuvent être appelées l’une à l’autre. Chaque type d’instruction a une ou plusieurs limites d’imbrication :
| Type d’instruction | Maximum |
|---|---|
| Imbrication statique | 24 |
| Imbrication dynamique | 24 |
| imbrication de boucles/REP | 4 |
| appeler l’imbrication | 4 |
| Nombre de flows statiques | Aucune limite |
Nombre de niveaux par instruction pour vs _ 3 _ SW
Chaque instruction compte sur une ou plusieurs limites de profondeur d’imbrication. Ce tableau indique le nombre de profondeurs que chaque instruction ajoute ou soustrait de la profondeur existante :
| Instruction | Imbrication statique | Imbrication dynamique | imbrication de boucles/REP | appeler l’imbrication | Nombre de flows statiques |
|---|---|---|---|---|---|
| Si bool-vs | 1 | 0 | 0 | 0 | n/a |
| Si _ COMP-vs | 0 | 1 | 0 | 0 | n/a |
| Si prédit-vs | 0 | 1 | 0 | 0 | n/a |
| else-vs | 0 | 0 | 0 | 0 | n/a |
| endif-vs | -1 (si bool-vs) | -1 (si prédit-vs ou si _ COMP-vs) | 0 | 0 | n/a |
| REP-vs | 0 | 0 | 1 | 0 | n/a |
| endrep-vs | 0 | 0 | -1 | 0 | n/a |
| boucle-vs | 0 | 0 | 1 | 0 | n/a |
| ENDLOOP-vs | 0 | 0 | -1 | 0 | n/a |
| Break-vs | 0 | 0 | 0 | 0 | n/a |
| arrêt _ COMP-vs | 0 | 1,-1 | 0 | 0 | n/a |
| breakp-vs | 0 | 0 | 0 | 0 | n/a |
| appel-vs | 0 | 0 | 0 | 1 | n/a |
| callnz bool-vs | 0 | 0 | 0 | 1 | n/a |
| callnz prédit-vs | 0 | 1 | 0 | 1 | n/a |
| RET-vs | 0 | -1 (callnz prédit-vs) | 0 | -1 | n/a |
| _COMP setp-vs | 0 | 0 | 0 | 0 | n/a |
Profondeur d’imbrication
Profondeur d’imbrication définissez le nombre d’instructions qui peuvent être appelées l’une à l’autre. Chaque type d’instruction a une ou plusieurs limites d’imbrication :
| Type d’instruction | Maximum |
|---|---|
| Imbrication statique | 24 |
| Imbrication dynamique | 24 |
| imbrication de boucles/REP | 4 |
| appeler l’imbrication | 4 |
| Nombre de flows statiques | Aucune limite |