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

Instructions du nuanceur de sommets