ps_3_0
프로그래밍 가능한 픽셀 셰이더는 픽셀 데이터에서 작동하는 일련의 명령으로 구성됩니다. 레지스터는 ALU 내/외부로 데이터를 전송합니다. 명령, 결과 또는 작성되는 데이터를 수정하기 위해 추가 제어를 적용할 수 있습니다.
- ps_3_0 명령에는 사용 가능한 명령 목록이 포함되어 있습니다.
- ps_3_0 레지스터는 픽셀 셰이더 ALU에서 사용하는 다양한 형식의 레지스터를 나열합니다.
- 한정자는 명령이 작동하는 방식을 수정하는 데 사용됩니다.
- 대상 레지스터 쓰기 마스크는 대상 레지스터의 어떤 구성 요소가 기록되는지 결정합니다.
- 픽셀 셰이더 원본 레지스터 한정자는 명령이 실행되기 전에 원본 레지스터 데이터를 변경합니다.
- 원본 레지스터 Swizzling은 어떤 레지스터 성분을 읽거나 복사하거나 쓸 것인지에 대한 추가 제어 기능을 제공합니다.
새로운 기능
얼굴 레지스터를 추가합니다. 위치 레지스터를 추가합니다. 색상 레지스터(v#)는 이제 완전히 부동 소수점이며 텍스처 좌표 레지스터(t#)는 통합되었습니다. 입력 선언은 사용 이름을 사용하며 지정된 레지스터의 성분에 대해 여러 사용이 허용됩니다.
동적 흐름 제어
디바이스는 동적 흐름 제어(if bool - ps, break - ps 및 break_comp - ps)를 지원합니다. 중첩 깊이 범위는 0에서 24까지입니다.
임시 레지스터 수
지원되는 임시 레지스터 수는 32개입니다.
정적 흐름 제어 중첩 깊이
call - ps/callnz /call_pred는 최대 깊이 4까지 중첩될 수 있습니다. 독립적으로 loop - ps/rep - ps 명령은 최대 깊이 4까지 중첩될 수 있습니다.
임의 swizzle
임의 swizzle이 지원됩니다. 원본 레지스터 Swizzling을 참조하세요.
그라데이션 명령
그라데이션 명령이 지원됩니다. dsx - ps, dsy - ps 및 texldd - ps를 참조하세요.
술어
명령 조건자가 지원됩니다. 조건자 레지스터를 참조하세요.
종속 읽기 제한
종속 읽기 제한이 없습니다.
텍스처 명령 제한
텍스처 명령에는 제한이 없습니다.
명령 개수
각 픽셀 셰이더는 512에서 최대 MaxPixelShader30InstructionSlots의 슬롯 수(32768 이하)까지 허용됩니다. 루핑 지원으로 인해 명령 실행 횟수가 훨씬 더 많을 수 있습니다. MaxPShaderInstructionsExecuted는 2^16 이상이어야 합니다.
샘플러 개수
사용 가능한 텍스처 샘플러의 수는 16개입니다.
디바이스 한도
ps_3_0이 지원되는 경우 하드웨어에서 다음 한도가 지원됩니다(최소).
상한 | 값 |
---|---|
MaxTextureWidth, MaxTextureHeight | 각 4K |
MaxTextureRepeat | 8K |
MaxAnisotropy | 16 |
PixelShaderVersion | 3_0 |
MaxPixelShader30InstructionSlots | 512 |
다음 기본 한도가 설정됩니다. | D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ |
다음 래스터 한도가 설정됩니다. | D3DCAPS9의 D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST |
다음을 포함하여 Z-축 순서 값을 완벽하게 지원합니다. | D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS |
다음을 포함한 깊이 및 알파 테스트에 대한 전체 비교 집합: | D3DCAPS9의 모든 D3DPCMPCAPS. |
원본 혼합 모드 | 모든 혼합 모드는 원본으로 지원됩니다(D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA 및 D3DPBLENDCAPS_BOTHINVSRCALPHA 제외). |
다음 텍스처 한도가 지원됩니다. | D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP |
다음은 텍스처 필터 한도, 볼륨 텍스처 필터 한도 및 큐브 텍스처 필터 한도에서 지원됩니다. | D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC(VolumeTextureFilterCaps 및 CubeTextureFilterCaps에는 필요하지 않음), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR |
꼭짓점 및 픽셀 단계에서 지원되는 텍스처 주소 모드는 다음과 같습니다. | D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE |
모든 픽셀 셰이더 한도가 지원됩니다. | DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. 지원되는 기능은 조건자, 임의 swizzle 및 그라데이션 명령입니다. 종속 읽기 제한이 없으며 텍스처 및 수학 명령의 혼합에 대한 제한이 없습니다. |
모든 스텐실 작업이 지원됩니다. 여기에는 양면 스텐실이 포함됩니다. | D3DSTENCILOP 참조 |
꼭짓점당 디바이스 지원 포인트 크기 | D3DCAPS9의 D3DFVFCAPS_PSIZE |
2의 거듭제곱이 아닌 텍스처를 지원합니다. | 전체 지원 또는 조건부 2의 거듭제곱이 아닌 지원; 디바이스에는 D3DPTEXTURECAPS_SQUAREONLY에서와 같이 정사각형 텍스처만 있으면 안 됩니다. |
디바이스가 여러 렌더 대상을 지원하는 경우 다음 한도가 지원됩니다. | D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
vs_3_0이 지원되는 경우 | D3DCAPS9의 MaxUserClipPlanes는 6입니다. |
관련 항목