Counting Flow Control Instructions
Flow control instructions have special restrictions for how they count against instruction limits.
Vertex Shader 2_0
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| call | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Vertex Shader 2_x
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Vertex Shader 2_sw
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Vertex Shader 3_0
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Vertex Shader 3_sw
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Pixel Shader 2_0
No flow control instructions in ps_2_0.
Pixel Shader 2_x
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| rep, endrep | | | | |
Pixel Shader 2_sw
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Pixel Shader 3_0
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |
Pixel Shader 3_sw
| static depth | dynamic depth | call depth | loop/rep depth |
|---|
| if | | | | |
| if_comp | | | | |
| if pred | | | | |
| call | | | | |
| callnz | | | | |
| callnz pred | | | | |
| break | | | | |
| break_comp | | | | |
| break pred | | | | |
| loop, endloop | | | | |
| rep, endrep | | | | |