다음을 통해 공유


흐름 제어 중첩 제한

꼭짓점 셰이더 흐름 제어 지침에는 두 가지 특별한 제한이 있습니다. 중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 제한합니다. 또한 각 명령에는 셰이더가 지원할 수 있는 최대 명령 수에 적용되는 명령 슬롯 수가 있습니다.

메모

*_4_0_level_9_x HLSL 셰이더 프로필을 사용하는 경우 셰이더 모델 2.x 프로필을 암시적으로 사용하여 Direct3D 9 지원 하드웨어를 지원합니다. 셰이더 모델 2.x 프로필은 셰이더 모델 4.x 이상 프로필보다 더 제한된 흐름 제어 동작을 지원합니다.

 

vs_2_0 명령당 깊이 수

각 명령은 하나 이상의 중첩 깊이 제한에 대해 계산됩니다. 이 표에서는 각 명령이 기존 깊이에서 추가하거나 빼는 깊이 수를 보여 줍니다.

명령 정적 중첩 동적 중첩 loop/rep 중첩 중첩 호출 정적 흐름 수
bool인 경우 - 0 0 0 0 1
if_comp - n/a n/a n/a n/a n/a
경우 - n/a n/a n/a n/a n/a
기타 - 0 0 0 0 1( bool인 경우-만 해당)
endif - vs -1 0 0 0 0
담당자 - 비교 0 0 1 0 1
엔드립 - 0 0 -1 0 0
루프 - 0 0 1 0 1
endloop - vs 0 0 -1 0 0
나누기 - 비교 n/a n/a n/a n/a n/a
break_comp - n/a n/a n/a n/a n/a
중단 - n/a n/a n/a n/a n/a
호출 - 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
ret - vs 0 0 0 -1 0
setp_comp - 비교 n/a n/a n/a n/a n/a

 

중첩 깊이

중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 정의합니다. 각 명령 유형에는 하나 이상의 중첩 제한이 있습니다.

명령 유형 최대
정적 중첩 정적 흐름 수에 의해서만 제한됩니다.
동적 중첩 n/a
loop/rep 중첩 1
중첩 호출 1
정적 흐름 수 16

 

vs_2_x 대한 명령당 깊이 수

각 명령은 하나 이상의 중첩 깊이 제한에 대해 계산됩니다. 이 표에서는 각 명령이 기존 깊이에서 추가하거나 빼는 깊이 수를 보여 줍니다.

명령 정적 중첩 동적 중첩 loop/rep 중첩 중첩 호출 정적 흐름 수
bool인 경우 - 1 0 0 0 1
if_comp - 0 1 0 0 0
경우 - 0 1 0 0 0
기타 - 0 0 0 0 1( bool인 경우-만 해당)
endif - vs -1(경우 bool - vs) -1(경우 - vs 또는 if_comp - vs) 0 0 0
담당자 - 비교 0 0 1 0 1
엔드립 - 0 0 -1 0 0
루프 - 0 0 1 0 1
endloop - vs 0 0 -1 0 0
나누기 - 비교 0 0 0 0 0
break_comp - 0 1, -1 0 0 0
중단 - 0 0 0 0 0
호출 - 0 0 0 1 1
callnz bool - vs 0 0 0 1 1
callnz pred - vs 0 1 0 1 0
ret - vs 0 -1 (callnz pred - vs) 0 -1 0
setp_comp - 비교 0 0 0 0 0

 

중첩 깊이

중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 정의합니다. 각 명령 유형에는 하나 이상의 중첩 제한이 있습니다.

명령 유형 최대
정적 중첩 정적 흐름 수에 의해서만 제한됩니다.
동적 중첩 0 또는 24, D3DCAPS9 참조하세요. VS20Caps.DynamicFlowControlDepth
loop/rep 중첩 1~4, D3DCAPS9 참조하세요. VS20Caps.StaticFlowControlDepth
중첩 호출 1~4, D3DCAPS9 참조하세요. VS20Caps.StaticFlowControlDepth(루프/rep 제한과 독립적)
정적 흐름 수 16

 

vs_2_sw 대한 명령당 깊이 수

각 명령은 하나 이상의 중첩 깊이 제한에 대해 계산됩니다. 이 표에서는 각 명령이 기존 깊이에서 추가하거나 빼는 깊이 수를 보여 줍니다.

명령 정적 중첩 동적 중첩 loop/rep 중첩 중첩 호출 정적 흐름 수
bool인 경우 - 1 0 0 0 n/a
if_comp - 0 1 0 0 n/a
경우 - 0 1 0 0 n/a
기타 - 0 0 0 0 n/a
endif - vs -1(경우 bool - vs) -1(경우 - vs 또는 if_comp - vs) 0 0 n/a
담당자 - 비교 0 0 1 0 n/a
엔드립 - 0 0 -1 0 n/a
루프 - 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
나누기 - 비교 0 0 0 0 n/a
break_comp - 0 1, -1 0 0 n/a
중단 - 0 0 0 0 n/a
호출 - 0 0 0 1 n/a
callnz bool - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - 비교 0 0 0 0 n/a

 

중첩 깊이

중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 정의합니다. 각 명령 유형에는 하나 이상의 중첩 제한이 있습니다.

명령 유형 최대
정적 중첩 24
동적 중첩 24
loop/rep 중첩 4
중첩 호출 4
정적 흐름 수 제한 없음

 

vs_3_0 대한 명령당 깊이 수

각 명령은 하나 이상의 중첩 깊이 제한에 대해 계산됩니다. 이 표에서는 각 명령이 기존 깊이에서 추가하거나 빼는 깊이 수를 보여 줍니다.

명령 정적 중첩 동적 중첩 loop/rep 중첩 중첩 호출 정적 흐름 수
bool인 경우 - 1 0 0 0 n/a
if_comp - 0 1 0 0 n/a
경우 - 0 1 0 0 n/a
기타 - 0 0 0 0 n/a
endif - vs -1(경우 bool - vs) -1(경우 - vs 또는 if_comp - vs) 0 0 n/a
담당자 - 비교 0 0 1 0 n/a
엔드립 - 0 0 -1 0 n/a
루프 - 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
나누기 - 비교 0 0 0 0 n/a
break_comp - 0 1, -1 0 0 n/a
중단 - 0 0 0 0 n/a
호출 - 0 0 0 1 n/a
callnz bool - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - 비교 0 0 0 0 n/a

 

중첩 깊이

중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 정의합니다. 각 명령 유형에는 하나 이상의 중첩 제한이 있습니다.

명령 유형 최대
정적 중첩 24
동적 중첩 24
loop/rep 중첩 4
중첩 호출 4
정적 흐름 수 제한 없음

 

vs_3_sw 대한 명령당 깊이 수

각 명령은 하나 이상의 중첩 깊이 제한에 대해 계산됩니다. 이 표에서는 각 명령이 기존 깊이에서 추가하거나 빼는 깊이 수를 보여 줍니다.

명령 정적 중첩 동적 중첩 loop/rep 중첩 중첩 호출 정적 흐름 수
bool인 경우 - 1 0 0 0 n/a
if_comp - 0 1 0 0 n/a
경우 - 0 1 0 0 n/a
기타 - 0 0 0 0 n/a
endif - vs -1(경우 bool - vs) -1(경우 - vs 또는 if_comp - vs) 0 0 n/a
담당자 - 비교 0 0 1 0 n/a
엔드립 - 0 0 -1 0 n/a
루프 - 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
나누기 - 비교 0 0 0 0 n/a
break_comp - 0 1, -1 0 0 n/a
중단 - 0 0 0 0 n/a
호출 - 0 0 0 1 n/a
callnz bool - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - 비교 0 0 0 0 n/a

 

중첩 깊이

중첩 깊이는 서로 내부에서 호출할 수 있는 명령 수를 정의합니다. 각 명령 유형에는 하나 이상의 중첩 제한이 있습니다.

명령 유형 최대
정적 중첩 24
동적 중첩 24
loop/rep 중첩 4
중첩 호출 4
정적 흐름 수 제한 없음

 

꼭짓점 셰이더 지침