ps_3_0

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

새로운 기능

얼굴 레지스터를 추가합니다. 위치 레지스터를 추가합니다. 색상 레지스터(v#)는 이제 완전히 부동 소수점이며 텍스처 좌표 레지스터(t#)는 통합되었습니다. 입력 선언은 사용 이름을 사용하며 지정된 레지스터의 성분에 대해 여러 사용이 허용됩니다.

동적 흐름 제어

디바이스는 동적 흐름 제어(if bool - ps, break - psbreak_comp - ps)를 지원합니다. 중첩 깊이 범위는 0에서 24까지입니다.

임시 레지스터 수

지원되는 임시 레지스터 수는 32개입니다.

정적 흐름 제어 중첩 깊이

call - ps/callnz /call_pred는 최대 깊이 4까지 중첩될 수 있습니다. 독립적으로 loop - ps/rep - ps 명령은 최대 깊이 4까지 중첩될 수 있습니다.

임의 swizzle

임의 swizzle이 지원됩니다. 원본 레지스터 Swizzling을 참조하세요.

그라데이션 명령

그라데이션 명령이 지원됩니다. dsx - ps, dsy - pstexldd - 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입니다.

 

픽셀 셰이더