vs_2_x

프로그래밍 가능한 꼭짓점 셰이더는 꼭짓점 데이터에서 작동하는 일련의 명령으로 구성됩니다. 레지스터는 ALU 내/외부로 데이터를 전송합니다. 명령, 결과 또는 작성되는 데이터를 수정하기 위해 추가 제어를 적용할 수 있습니다.

꼭짓점 셰이더 버전 vs_2_x는 vs_2_0에서 지원하는 기능 집합을 확장합니다. 각 추가 기능은 D3DVS20CAPS 내의 D3DCAPS9 구조체에서 해당 캡으로 표시됩니다. 이러한 한도로 표시되는 향상된 기능을 사용하려면 꼭짓점 셰이더 버전을 vs_2_x로 지정해야 합니다.

새로운 기능

새로운 기능은 다음과 같습니다.

동적 흐름 제어

D3DVS20CAPS> 0인 경우 다음 동적 흐름 제어 명령이 지원됩니다.

D3DVS20CAPS도 설정된 경우 다음 추가 흐름 제어 명령이 지원됩니다.

동적 흐름 제어 깊이의 값 범위는 0에서 24까지이며 동적 흐름 제어 명령의 중첩 깊이와 같습니다(자세한 내용은 흐름 제어 중첩 제한 참조). 이 제한이 0이면 디바이스가 동적 흐름 제어 명령을 지원하지 않습니다.

임시 레지스터 수

D3DVS20CAPS는 디바이스에서 지원하는 임시 레지스터의 수를 나타냅니다. 이 한도 값의 범위는 12에서 32까지입니다.

정적 흐름 제어 중첩 깊이

D3DVS20CAPS는 두 가지 유형의 정적 흐름 제어 명령의 중첩 깊이를 나타냅니다. loop - vs/rep - vscall - vs/callnz bool - vs/if bool - vs. loop - vs/rep - vs 명령은 최대 D3DVS20CAPS 깊이까지 중첩될 수 있습니다. 독립적으로 call - vs/callnz bool - vs 명령은 D3DVS20CAPS 깊이까지 중첩될 수 있습니다. D3DVS20CAPS도 설정된 경우 callnz pred - vs는 call - vs/callnz bool - vs/if bool - vs의 중첩 깊이로 계산됩니다(자세한 내용은 흐름 제어 중첩 제한 참조).

술어

D3DVS20CAPS가 설정된 경우 디바이스는 setp_comp - vs 및 명령 술어를 지원합니다. D3DVS20CAPS도 0보다 크면 다음 추가 동적 흐름 제어 명령이 지원됩니다.

명령 개수

각 꼭짓점 셰이더에는 최대 256개의 명령이 저장되어 있을 수 있습니다. 실행되는 명령의 수는 루프/반복 지원으로 인해 훨씬 더 많을 수 있으며 D3DCAPS9로 제한되며 최소 0xFFFF여야 합니다.

꼭짓점 셰이더