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 |
Verwante onderwerpen