vs_2_x
프로그래밍 가능한 꼭짓점 셰이더는 꼭짓점 데이터에서 작동하는 일련의 명령으로 구성됩니다. 레지스터는 ALU 내/외부로 데이터를 전송합니다. 명령, 결과 또는 작성되는 데이터를 수정하기 위해 추가 제어를 적용할 수 있습니다.
꼭짓점 셰이더 버전 vs_2_x는 vs_2_0에서 지원하는 기능 집합을 확장합니다. 각 추가 기능은 D3DVS20CAPS 내의 D3DCAPS9 구조체에서 해당 캡으로 표시됩니다. 이러한 한도로 표시되는 향상된 기능을 사용하려면 꼭짓점 셰이더 버전을 vs_2_x로 지정해야 합니다.
- 명령 - vs_2_x에는 사용 가능한 명령 목록이 포함되어 있습니다.
- 레지스터 - vs_2_x는 꼭짓점 셰이더 ALU에서 사용하는 다양한 형식의 레지스터를 나열합니다.
- 꼭짓점 셰이더 레지스터 한정자는 명령 작동 방식을 수정하는 데 사용됩니다.
- 꼭짓점 셰이더 원본 레지스터 한정자는 명령이 실행되기 전에 원본 레지스터 데이터를 변경합니다.
- 원본 레지스터 혼합을 통해 어떤 레지스터 구성 요소를 읽고 복사하거나 쓸지 추가로 제어할 수 있습니다.
- 대상 레지스터 마스킹은 대상 레지스터의 어떤 성분이 기록되는지 결정합니다.
새로운 기능
새로운 기능은 다음과 같습니다.
동적 흐름 제어
D3DVS20CAPS> 0인 경우 다음 동적 흐름 제어 명령이 지원됩니다.
D3DVS20CAPS도 설정된 경우 다음 추가 흐름 제어 명령이 지원됩니다.
동적 흐름 제어 깊이의 값 범위는 0에서 24까지이며 동적 흐름 제어 명령의 중첩 깊이와 같습니다(자세한 내용은 흐름 제어 중첩 제한 참조). 이 제한이 0이면 디바이스가 동적 흐름 제어 명령을 지원하지 않습니다.
임시 레지스터 수
D3DVS20CAPS는 디바이스에서 지원하는 임시 레지스터의 수를 나타냅니다. 이 한도 값의 범위는 12에서 32까지입니다.
정적 흐름 제어 중첩 깊이
D3DVS20CAPS는 두 가지 유형의 정적 흐름 제어 명령의 중첩 깊이를 나타냅니다. loop - vs/rep - vs 및 call - 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여야 합니다.
관련 항목