ps_3_0

Um sombreador de pixel programável é composto por um conjunto de instruções que operam em dados de pixel. Registra dados de transferência dentro e fora da ALU. Controle adicional pode ser aplicado para modificar a instrução, os resultados ou quais dados são gravados.

Novos recursos

Adicione um registo facial. Adicione um registo de posição. Os registros de cores (v#) agora são totalmente flutuantes e os registros de coordenadas de textura (t#) foram consolidados. As declarações de entrada usam os nomes de uso, e vários usos são permitidos para componentes de um determinado registro.

Controlo Dinâmico de Caudal

O dispositivo suporta controle de fluxo dinâmico (se bool - ps, break - ps, e break_comp - ps). A profundidade de nidificação varia de 0 a 24.

Número de registos temporários

O número de registos temporários apoiados é de 32.

Profundidade de aninhamento do controle de fluxo estático

A chamada de - ps/callnz /call_pred pode ser aninhada a uma profundidade máxima de 4. Independentemente, loop - ps/rep - ps instruções podem ser aninhadas a uma profundidade máxima de 4.

Swizzle arbitrário

Swizzle arbitrário é suportado. Consulte Source Register Swizzling.

Instruções de gradiente

Instruções de gradiente são suportadas. Veja dsx - ps, dsy - ps, e texldd - ps.

Predicação

A predicação de instruções é suportada. Consulte Registro de Predicados.

Limite de leitura dependente

Não há limites de leitura dependentes.

Limite de instruções de textura

Não há limite para as instruções de textura.

Contagem de instruções

Cada sombreador de pixel é permitido em qualquer lugar de 512 até o número de slots em MaxPixelShader30InstructionSlots (não mais de 32768). O número de instruções executadas pode ser muito maior devido ao suporte de looping. MaxPShaderInstructionsExecuted deve ser pelo menos 2^16.

Contagem de amostradores

O número de amostradores de textura disponíveis é de 16.

Tampas do dispositivo

Se ps_3_0 for suportado, os seguintes limites são suportados no hardware (no mínimo):

Boné Valor
MaxTextureWidth, MaxTextureHeight 4K cada
MaxTextureRepeat 8K
MaxAnisotropia 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
As seguintes tampas primitivas são definidas: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF D3DPMISCCAPS_MASKZ
As seguintes tampas raster são definidas: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE D3DPRASTERCAPS_SCISSORTEST em D3DCAPS9
Suporte completo para viés de profundidade, incluindo: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Conjunto completo de comparações para teste de profundidade e alfa, incluindo: Todos os D3DPCMPCAPS em D3DCAPS9.
Modos de mistura de origem Todos os modos de mistura são suportados como fonte (exceto D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA e D3DPBLENDCAPS_BOTHINVSRCALPHA).
As seguintes tampas de textura são suportadas: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPETIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE D3DPTEXTURECAPS_VOLUMEMAP
Os seguintes itens são suportados em tampas de filtro de textura, tampas de filtro de textura de volume e tampas de filtro de textura de cubo: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (Isso não é necessário para VolumeTextureFilterCaps e CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT D3DPTFILTERCAPS_MAGFLINEAR
Os seguintes modos de endereço de textura são suportados nos estágios de vértice e pixel: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV D3DPTADDRESSCAPS_MIRRORONCE
Todas as tampas do sombreador de pixel são suportadas. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Os seguintes recursos são suportados: predicação, swizzles arbitrários e instruções de gradiente. Não há limite de leitura dependente e não há limite para a mistura de instruções de textura e matemática.
Todas as operações de estêncil são suportadas. Isto inclui estêncil de dois lados. Visualizar D3DSTENCILOP
Tamanho do ponto de suporte do dispositivo por vértice D3DFVFCAPS_PSIZE em D3DCAPS9
Sem alimentação de 2 suportes de textura. Suporte total ou suporte condicional não-pow-2; dispositivo não deve ter a textura quadrada apenas limitação como em D3DPTEXTURECAPS_SQUAREONLY.
Se o dispositivo suportar vários rendertargets, os seguintes limites são suportados: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Se vs_3_0 for suportado MaxUserClipPlanes em D3DCAPS9 é 6

 

Pixel Shaders