Limiti di annidamento del controllo del flusso
Le istruzioni di controllo del flusso del vertex shader hanno due restrizioni speciali. Le profondità di annidamento limitano il numero di istruzioni che possono essere chiamate tra loro. Inoltre, ogni istruzione ha un numero di slot di istruzioni che si applica al numero massimo di istruzioni che un shader può supportare.
Nota
Quando si usano i profili shader *_4_0_level_9_x HLSL, si usano in modo implicito i profili shader Model 2.x per supportare l'hardware compatibile con Direct3D 9. I profili del modello di shader 2.x supportano un comportamento di controllo del flusso più limitato rispetto ai profili Modello shader 4. x 4.x e versioni successive.
Depth Count per Instruction for vs_2_0
Ogni istruzione viene conteggiato rispetto a uno o più limiti di profondità annidamento. Questa tabella mostra il conteggio della profondità che ogni istruzione aggiunge o sottrae dalla profondità esistente:
Istruzione | Annidamento statico | Annidamento dinamico | annidamento di cicli/rep | annidamento delle chiamate | Conteggio dei flussi statici |
---|---|---|---|---|---|
se bool - vs | 0 | 0 | 0 | 0 | 1 |
if_comp - confronto tra | n/a | n/a | n/a | n/a | n/a |
se pred - vs | n/a | n/a | n/a | n/a | n/a |
else - vs | 0 | 0 | 0 | 0 | 1(se bool - vs solo) |
endif - vs | -1 | 0 | 0 | 0 | 0 |
rep - vs | 0 | 0 | 1 | 0 | 1 |
endrep - vs | 0 | 0 | -1 | 0 | 0 |
ciclo e | 0 | 0 | 1 | 0 | 1 |
endloop - vs | 0 | 0 | -1 | 0 | 0 |
interruzione - confronto tra | n/a | n/a | n/a | n/a | n/a |
break_comp - confronto tra | n/a | n/a | n/a | n/a | n/a |
breakp - vs | n/a | n/a | n/a | n/a | n/a |
chiamata - vs | 0 | 0 | 0 | 1 | 1 |
callnz bool - vs | 0 | 0 | 0 | 1 | 1 |
callnz pred - vs | n/a | n/a | n/a | n/a | n/a |
0 | 0 | 0 | -1 | 0 | |
setp_comp - confronto tra | n/a | n/a | n/a | n/a | n/a |
Profondità annidamento
La profondità di annidamento definisce il numero di istruzioni che è possibile chiamare tra loro. Ogni tipo di istruzione ha uno o più limiti di annidamento:
Tipo di istruzione | Massimo |
---|---|
Annidamento statico | Solo limitato dal numero di flussi statici |
Annidamento dinamico | n/a |
annidamento di cicli/rep | 1 |
annidamento delle chiamate | 1 |
Conteggio dei flussi statici | 16 |
Depth Count per Instruction for vs_2_x
Ogni istruzione viene conteggiato rispetto a uno o più limiti di profondità annidamento. Questa tabella mostra il conteggio della profondità che ogni istruzione aggiunge o sottrae dalla profondità esistente:
Istruzione | Annidamento statico | Annidamento dinamico | annidamento di cicli/rep | annidamento delle chiamate | Conteggio dei flussi statici |
---|---|---|---|---|---|
se bool - vs | 1 | 0 | 0 | 0 | 1 |
if_comp - confronto tra | 0 | 1 | 0 | 0 | 0 |
se pred - vs | 0 | 1 | 0 | 0 | 0 |
else - vs | 0 | 0 | 0 | 0 | 1(se bool - vs solo) |
endif - vs | -1(se bool - vs) | -1(se pred - vs o if_comp - vs) | 0 | 0 | 0 |
rep - vs | 0 | 0 | 1 | 0 | 1 |
endrep - vs | 0 | 0 | -1 | 0 | 0 |
ciclo e | 0 | 0 | 1 | 0 | 1 |
endloop - vs | 0 | 0 | -1 | 0 | 0 |
interruzione - confronto tra | 0 | 0 | 0 | 0 | 0 |
break_comp - confronto tra | 0 | 1, -1 | 0 | 0 | 0 |
breakp - vs | 0 | 0 | 0 | 0 | 0 |
chiamata - vs | 0 | 0 | 0 | 1 | 1 |
callnz bool - vs | 0 | 0 | 0 | 1 | 1 |
callnz pred - vs | 0 | 1 | 0 | 1 | 0 |
0 | -1 (callnz pred - vs) | 0 | -1 | 0 | |
setp_comp - confronto tra | 0 | 0 | 0 | 0 | 0 |
Profondità annidamento
La profondità di annidamento definisce il numero di istruzioni che è possibile chiamare tra loro. Ogni tipo di istruzione ha uno o più limiti di annidamento:
Tipo di istruzione | Massimo |
---|---|
Annidamento statico | Solo limitato dal numero di flussi statici |
Annidamento dinamico | 0 o 24, vedere D3DCAPS9. VS20Caps.DynamicFlowControlDepth |
annidamento di cicli/rep | Da 1 a 4, vedere D3DCAPS9. VS20Caps.StaticFlowControlDepth |
annidamento delle chiamate | Da 1 a 4, vedere D3DCAPS9. VS20Caps.StaticFlowControlDepth (indipendente dal limite di cicli/rep) |
Conteggio dei flussi statici | 16 |
Depth Count per Instruction for vs_2_sw
Ogni istruzione viene conteggiato rispetto a uno o più limiti di profondità annidamento. Questa tabella mostra il conteggio della profondità che ogni istruzione aggiunge o sottrae dalla profondità esistente:
Istruzione | Annidamento statico | Annidamento dinamico | annidamento di cicli/rep | annidamento delle chiamate | Conteggio dei flussi statici |
---|---|---|---|---|---|
se bool - vs | 1 | 0 | 0 | 0 | n/a |
if_comp - confronto tra | 0 | 1 | 0 | 0 | n/a |
se pred - vs | 0 | 1 | 0 | 0 | n/a |
else - vs | 0 | 0 | 0 | 0 | n/a |
endif - vs | -1(se bool - vs) | -1(se pred - vs o if_comp - vs) | 0 | 0 | n/a |
rep - vs | 0 | 0 | 1 | 0 | n/a |
endrep - vs | 0 | 0 | -1 | 0 | n/a |
ciclo e | 0 | 0 | 1 | 0 | n/a |
endloop - vs | 0 | 0 | -1 | 0 | n/a |
interruzione - confronto tra | 0 | 0 | 0 | 0 | n/a |
break_comp - confronto tra | 0 | 1, -1 | 0 | 0 | n/a |
breakp - vs | 0 | 0 | 0 | 0 | n/a |
chiamata - vs | 0 | 0 | 0 | 1 | n/a |
callnz bool - vs | 0 | 0 | 0 | 1 | n/a |
callnz pred - vs | 0 | 1 | 0 | 1 | n/a |
0 | -1 (callnz pred - vs) | 0 | -1 | n/a | |
setp_comp - confronto tra | 0 | 0 | 0 | 0 | n/a |
Profondità annidamento
La profondità di annidamento definisce il numero di istruzioni che è possibile chiamare tra loro. Ogni tipo di istruzione ha uno o più limiti di annidamento:
Tipo di istruzione | Massimo |
---|---|
Annidamento statico | 24 |
Annidamento dinamico | 24 |
annidamento di cicli/rep | 4 |
annidamento delle chiamate | 4 |
Conteggio dei flussi statici | Nessun limite |
Depth Count per Instruction for vs_3_0
Ogni istruzione viene conteggiato rispetto a uno o più limiti di profondità annidamento. Questa tabella mostra il conteggio della profondità che ogni istruzione aggiunge o sottrae dalla profondità esistente:
Istruzione | Annidamento statico | Annidamento dinamico | annidamento di cicli/rep | annidamento delle chiamate | Conteggio dei flussi statici |
---|---|---|---|---|---|
se bool - vs | 1 | 0 | 0 | 0 | n/a |
if_comp - confronto tra | 0 | 1 | 0 | 0 | n/a |
se pred - vs | 0 | 1 | 0 | 0 | n/a |
else - vs | 0 | 0 | 0 | 0 | n/a |
endif - vs | -1(se bool - vs) | -1(se pred - vs o if_comp - vs) | 0 | 0 | n/a |
rep - vs | 0 | 0 | 1 | 0 | n/a |
endrep - vs | 0 | 0 | -1 | 0 | n/a |
ciclo e | 0 | 0 | 1 | 0 | n/a |
endloop - vs | 0 | 0 | -1 | 0 | n/a |
interruzione - confronto tra | 0 | 0 | 0 | 0 | n/a |
break_comp - confronto tra | 0 | 1, -1 | 0 | 0 | n/a |
breakp - vs | 0 | 0 | 0 | 0 | n/a |
chiamata - vs | 0 | 0 | 0 | 1 | n/a |
callnz bool - vs | 0 | 0 | 0 | 1 | n/a |
callnz pred - vs | 0 | 1 | 0 | 1 | n/a |
0 | -1 (callnz pred - vs) | 0 | -1 | n/a | |
setp_comp - confronto tra | 0 | 0 | 0 | 0 | n/a |
Profondità annidamento
La profondità di annidamento definisce il numero di istruzioni che è possibile chiamare tra loro. Ogni tipo di istruzione ha uno o più limiti di annidamento:
Tipo di istruzione | Massimo |
---|---|
Annidamento statico | 24 |
Annidamento dinamico | 24 |
annidamento di cicli/rep | 4 |
annidamento delle chiamate | 4 |
Conteggio dei flussi statici | Nessun limite |
Depth Count per Instruction for vs_3_sw
Ogni istruzione viene conteggiato rispetto a uno o più limiti di profondità annidamento. Questa tabella mostra il conteggio della profondità che ogni istruzione aggiunge o sottrae dalla profondità esistente:
Istruzione | Annidamento statico | Annidamento dinamico | annidamento di cicli/rep | annidamento delle chiamate | Conteggio dei flussi statici |
---|---|---|---|---|---|
se bool - vs | 1 | 0 | 0 | 0 | n/a |
if_comp - confronto tra | 0 | 1 | 0 | 0 | n/a |
se pred - vs | 0 | 1 | 0 | 0 | n/a |
else - vs | 0 | 0 | 0 | 0 | n/a |
endif - vs | -1(se bool - vs) | -1(se pred - vs o if_comp - vs) | 0 | 0 | n/a |
rep - vs | 0 | 0 | 1 | 0 | n/a |
endrep - vs | 0 | 0 | -1 | 0 | n/a |
ciclo e | 0 | 0 | 1 | 0 | n/a |
endloop - vs | 0 | 0 | -1 | 0 | n/a |
interruzione - confronto tra | 0 | 0 | 0 | 0 | n/a |
break_comp - confronto tra | 0 | 1, -1 | 0 | 0 | n/a |
breakp - vs | 0 | 0 | 0 | 0 | n/a |
chiamata - vs | 0 | 0 | 0 | 1 | n/a |
callnz bool - vs | 0 | 0 | 0 | 1 | n/a |
callnz pred - vs | 0 | 1 | 0 | 1 | n/a |
0 | -1 (callnz pred - vs) | 0 | -1 | n/a | |
setp_comp - confronto tra | 0 | 0 | 0 | 0 | n/a |
Profondità annidamento
La profondità di annidamento definisce il numero di istruzioni che è possibile chiamare tra loro. Ogni tipo di istruzione ha uno o più limiti di annidamento:
Tipo di istruzione | Massimo |
---|---|
Annidamento statico | 24 |
Annidamento dinamico | 24 |
annidamento di cicli/rep | 4 |
annidamento delle chiamate | 4 |
Conteggio dei flussi statici | Nessun limite |
Argomenti correlati