픽셀 셰이더 차이점
명령 슬롯
각 버전은 다른 수의 최대 명령 슬롯을 지원합니다.
버전 | 최대 명령 슬롯 수 |
---|---|
ps_1_1 | 4 텍스처 + 8 산술 |
ps_1_2 | 4 텍스처 + 8 산술 |
ps_1_3 | 4 텍스처 + 8 산술 |
ps_1_4 | 6 텍스처 + 위상당 8 산술 |
ps_2_0 | 32 텍스처 + 64 산술 |
ps_2_x | 최소 96 및 D3DCAPS9.D3DPSHADERCAPS2_0.NumInstructionSlots의 최대 슬롯 수. D3DPSHADERCAPS2_0을 참조하세요. |
ps_3_0 | 최소 512개 및 D3DCAPS9.MaxPixelShader30InstructionSlots의 최대 슬롯 수. D3DPSHADERCAPS2_0을 참조하세요. |
소프트웨어 셰이더의 제한 사항에 대한 자세한 내용은 소프트웨어 셰이더를 참조하세요.
흐름 제어 중첩 제한
- 흐름 제어 제한을 참조하세요.
ps_1_x 기능
새 명령:
ps_1_1, ps_1_2, ps_1_3 ps_1_4 명령을 참조하세요.
새 레지스터:
ps_1_1__ps_1_2__ps_1_3__ps_1_4 레지스터를 참조하세요.
ps_2_0 기능
새로운 기능:
- 새로운 스위즐 세 개 - .yzxw, .zxyw, .wzyx
- 임시 레지스터 수(r#)가 12개로 증가했습니다.
- 상수 Float 레지스터 수(c#)가 32개로 증가했습니다.
- 텍스처 좌표 레지스터 수(t#)가 8개로 증가했습니다.
새 명령:
- 설치 명령 - dcl - (sm2, sm3 - ps asm), dcl_samplerType(sm2, sm3 - ps asm)
- 산술 명령 - abs - ps, crs - ps, dp2add - ps, exp - ps, frc - ps, log - ps, m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, m4x4 - ps, max - ps, min - ps, nrm - ps, pow - ps, rcp - ps, rsq - ps, sincos - ps
- 텍스처 명령 - texld - ps_2_0 이상(다른 구문), texldb - ps, texldp - ps
새 레지스터:
ps_2_x 기능
새 기능(D3DPSHADERCAPS2_0 참조):
- 동적 흐름 제어
- 정적 흐름 제어
- 동적 및 정적 흐름 제어 명령에 대한 중첩
- 임시 레지스터수(r#) 증가
- 임의 원본 스위즐
- 그라데이션 명령
- 술어
- 종속 텍스처 읽기 제한 없음
- 텍스처 명령 제한 없음
새 명령:
- 정적 흐름 제어 명령 - if bool - ps, call - ps, callnz bool - ps, else - ps, endif - ps, rep - ps, endrep - ps, label - ps, ret - ps
- 동적 흐름 제어 명령 - break - ps, break_comp - ps, breakp - ps, callnz pred - ps, if_comp - ps, if pred - ps, setp_comp - ps
- 산술 명령 - dsx - ps, dsy - ps
- 텍스처 명령 - texldd - ps
새 레지스터:
- 조건자 레지스터(p0)
ps_3_0 기능
새로운 기능:
- 통합된 10개 입력 레지스터(v#)
- 루프 카운터 레지스터(aL)를 사용하여 인덱스 가능한 입력 색상 레지스터(v#)
- 임시 레지스터 수(r#)가 32개로 증가했습니다.
- 상수 Float 레지스터 수(c#)가 224개로 증가했습니다.
새 명령:
- 설치 명령 - dcl_semantics(sm3 - ps asm)
- 정적 흐름 명령 - loop - ps, endloop - ps
- 산술 명령 - sincos - ps(새 구문)
- 텍스처 명령 - texldl - ps
새 레지스터:
관련 항목