Delen via


Nestingslimieten voor stroombeheer

Instructies voor stroombesturing van hoekpunten hebben twee speciale beperkingen. Diepten van nesten beperken het aantal instructies dat binnen elkaar kan worden aangeroepen. Bovendien heeft elke instructie een aantal instructiesleufen dat van toepassing is op het maximum aantal instructies dat een shader kan ondersteunen.

Notitie

Wanneer u de *_4_0_level_9_x HLSL-arceringsprofielen gebruikt, gebruikt u impliciet het Shader Model 2.x-profielen ter ondersteuning van hardware die geschikt is voor Direct3D 9. Shader Model 2.x-profielen ondersteunen beperkter gedrag van stroombeheer dan de profielen Shader Model 4.x en hoger.

 

Diepteaantal per instructie voor vs_2_0

Elke instructie telt mee tegen een of meer dieptelimieten voor nesten. In deze tabel ziet u het diepteaantal dat door elke instructie wordt toegevoegd aan of afgetrokken van de bestaande diepte:

Instructie Statische nesting Dynamisch nesten lus/rep nesten nesten aanroepen Aantal statische stromen
if bool - vs 0 0 0 0 1
if_comp - versus n.v.t n.v.t n.v.t n.v.t n.v.t
als pred - versus n.v.t n.v.t n.v.t n.v.t n.v.t
else - versus 0 0 0 0 1(als bool - versus alleen)
endif - versus -1 0 0 0 0
rep - vs 0 0 1 0 1
endrep - vs 0 0 -1 0 0
lus - versus 0 0 1 0 1
endloop - versus 0 0 -1 0 0
break - vs n.v.t n.v.t n.v.t n.v.t n.v.t
break_comp - versus n.v.t n.v.t n.v.t n.v.t n.v.t
breakp - vs n.v.t n.v.t n.v.t n.v.t n.v.t
bellen - versus 0 0 0 1 1
callnz bool - vs 0 0 0 1 1
callnz pred - vs n.v.t n.v.t n.v.t n.v.t n.v.t
ret - versus 0 0 0 -1 0
setp_comp - vs n.v.t n.v.t n.v.t n.v.t n.v.t

 

Diepte nesten

De diepte van nesten bepaalt hoeveel instructies binnen elkaar kunnen worden aangeroepen. Elk type instructie heeft een of meer nestlimieten:

Instructietype Maximum
Statische nesting Alleen beperkt door het aantal statische stromen
Dynamisch nesten n.v.t
lus/rep nesten 1
nesten aanroepen 1
Aantal statische stromen 16

 

Diepteaantal per instructie voor vs_2_x

Elke instructie telt mee tegen een of meer dieptelimieten voor nesten. In deze tabel ziet u het diepteaantal dat door elke instructie wordt toegevoegd aan of afgetrokken van de bestaande diepte:

Instructie Statische nesting Dynamisch nesten lus/rep nesten nesten aanroepen Aantal statische stromen
if bool - vs 1 0 0 0 1
if_comp - versus 0 1 0 0 0
als pred - versus 0 1 0 0 0
else - versus 0 0 0 0 1(als bool - versus alleen)
endif - versus -1(if bool - vs) -1(indien pred - vs of if_comp - versus) 0 0 0
rep - vs 0 0 1 0 1
endrep - vs 0 0 -1 0 0
lus - versus 0 0 1 0 1
endloop - versus 0 0 -1 0 0
break - vs 0 0 0 0 0
break_comp - versus 0 1, -1 0 0 0
breakp - vs 0 0 0 0 0
bellen - versus 0 0 0 1 1
callnz bool - vs 0 0 0 1 1
callnz pred - vs 0 1 0 1 0
ret - versus 0 -1 (callnz pred - vs) 0 -1 0
setp_comp - vs 0 0 0 0 0

 

Diepte nesten

De diepte van nesten bepaalt hoeveel instructies binnen elkaar kunnen worden aangeroepen. Elk type instructie heeft een of meer nestlimieten:

Instructietype Maximum
Statische nesting Alleen beperkt door het aantal statische stromen
Dynamisch nesten Zie D3DCAPS9 0 of 24. VS20Caps.DynamicFlowControlDepth
lus/rep nesten 1 tot 4, zie D3DCAPS9. VS20Caps.StaticFlowControlDepth
nesten aanroepen 1 tot 4, zie D3DCAPS9. VS20Caps.StaticFlowControlDepth (onafhankelijk van lus/rep-limiet)
Aantal statische stromen 16

 

Diepteaantal per instructie voor vs_2_sw

Elke instructie telt mee tegen een of meer dieptelimieten voor nesten. In deze tabel ziet u het diepteaantal dat door elke instructie wordt toegevoegd aan of afgetrokken van de bestaande diepte:

Instructie Statische nesting Dynamisch nesten lus/rep nesten nesten aanroepen Aantal statische stromen
if bool - vs 1 0 0 0 n.v.t
if_comp - versus 0 1 0 0 n.v.t
als pred - versus 0 1 0 0 n.v.t
else - versus 0 0 0 0 n.v.t
endif - versus -1(if bool - vs) -1(indien pred - vs of if_comp - versus) 0 0 n.v.t
rep - vs 0 0 1 0 n.v.t
endrep - vs 0 0 -1 0 n.v.t
lus - versus 0 0 1 0 n.v.t
endloop - versus 0 0 -1 0 n.v.t
break - vs 0 0 0 0 n.v.t
break_comp - versus 0 1, -1 0 0 n.v.t
breakp - vs 0 0 0 0 n.v.t
bellen - versus 0 0 0 1 n.v.t
callnz bool - vs 0 0 0 1 n.v.t
callnz pred - vs 0 1 0 1 n.v.t
ret - versus 0 -1 (callnz pred - vs) 0 -1 n.v.t
setp_comp - vs 0 0 0 0 n.v.t

 

Diepte nesten

De diepte van nesten bepaalt hoeveel instructies binnen elkaar kunnen worden aangeroepen. Elk type instructie heeft een of meer nestlimieten:

Instructietype Maximum
Statische nesting 24
Dynamisch nesten 24
lus/rep nesten 4
nesten aanroepen 4
Aantal statische stromen Geen limiet

 

Diepteaantal per instructie voor vs_3_0

Elke instructie telt mee tegen een of meer dieptelimieten voor nesten. In deze tabel ziet u het diepteaantal dat door elke instructie wordt toegevoegd aan of afgetrokken van de bestaande diepte:

Instructie Statische nesting Dynamisch nesten lus/rep nesten nesten aanroepen Aantal statische stromen
if bool - vs 1 0 0 0 n.v.t
if_comp - versus 0 1 0 0 n.v.t
als pred - versus 0 1 0 0 n.v.t
else - versus 0 0 0 0 n.v.t
endif - versus -1(if bool - vs) -1(indien pred - vs of if_comp - versus) 0 0 n.v.t
rep - vs 0 0 1 0 n.v.t
endrep - vs 0 0 -1 0 n.v.t
lus - versus 0 0 1 0 n.v.t
endloop - versus 0 0 -1 0 n.v.t
break - vs 0 0 0 0 n.v.t
break_comp - versus 0 1, -1 0 0 n.v.t
breakp - vs 0 0 0 0 n.v.t
bellen - versus 0 0 0 1 n.v.t
callnz bool - vs 0 0 0 1 n.v.t
callnz pred - vs 0 1 0 1 n.v.t
ret - versus 0 -1 (callnz pred - vs) 0 -1 n.v.t
setp_comp - vs 0 0 0 0 n.v.t

 

Diepte nesten

De diepte van nesten bepaalt hoeveel instructies binnen elkaar kunnen worden aangeroepen. Elk type instructie heeft een of meer nestlimieten:

Instructietype Maximum
Statische nesting 24
Dynamisch nesten 24
lus/rep nesten 4
nesten aanroepen 4
Aantal statische stromen Geen limiet

 

Diepteaantal per instructie voor vs_3_sw

Elke instructie telt mee tegen een of meer dieptelimieten voor nesten. In deze tabel ziet u het diepteaantal dat door elke instructie wordt toegevoegd aan of afgetrokken van de bestaande diepte:

Instructie Statische nesting Dynamisch nesten lus/rep nesten nesten aanroepen Aantal statische stromen
if bool - vs 1 0 0 0 n.v.t
if_comp - versus 0 1 0 0 n.v.t
als pred - versus 0 1 0 0 n.v.t
else - versus 0 0 0 0 n.v.t
endif - versus -1(if bool - vs) -1(indien pred - vs of if_comp - versus) 0 0 n.v.t
rep - vs 0 0 1 0 n.v.t
endrep - vs 0 0 -1 0 n.v.t
lus - versus 0 0 1 0 n.v.t
endloop - versus 0 0 -1 0 n.v.t
break - vs 0 0 0 0 n.v.t
break_comp - versus 0 1, -1 0 0 n.v.t
breakp - vs 0 0 0 0 n.v.t
bellen - versus 0 0 0 1 n.v.t
callnz bool - vs 0 0 0 1 n.v.t
callnz pred - vs 0 1 0 1 n.v.t
ret - versus 0 -1 (callnz pred - vs) 0 -1 n.v.t
setp_comp - vs 0 0 0 0 n.v.t

 

Diepte nesten

De diepte van nesten bepaalt hoeveel instructies binnen elkaar kunnen worden aangeroepen. Elk type instructie heeft een of meer nestlimieten:

Instructietype Maximum
Statische nesting 24
Dynamisch nesten 24
lus/rep nesten 4
nesten aanroepen 4
Aantal statische stromen Geen limiet

 

instructies voor arcering van hoekpunten