ps_3_0
Um sombreador de pixel programável é composto por um conjunto de instruções que operam em dados de pixel. Registra a transferência de dados dentro e fora da ALU. Controle adicional pode ser aplicado para modificar a instrução, os resultados ou quais dados são gravados.
- ps_3_0 Instruções contém uma lista das instruções disponíveis.
- ps_3_0 Registers lista os diferentes tipos de registros usados pela ALU do sombreador de pixel.
- Modificadores São usados para modificar a maneira como uma instrução funciona.
- Máscara de Gravação de Registro de Destino determina quais componentes do registro de destino são gravados.
- Os Modificadores de Registro de Origem do Sombreador de Pixel alteram os dados de registro de origem antes da execução da instrução.
- O Source Register Swizzling fornece controle adicional sobre quais componentes de registro são lidos, copiados ou gravados.
Novos recursos
Adicione um registro facial. Adicione um registro 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 recebem os nomes de uso e vários usos são permitidos para componentes de um determinado registro.
Controle de Fluxo Dinâmico
O dispositivo dá suporte ao controle de fluxo dinâmico (se bool - ps, break - ps e break_comp - ps). A profundidade do aninhamento varia de 0 a 24.
Número de registros temporários
O número de registros temporários com suporte é 32.
Profundidade de aninhamento do controle de fluxo estático
A chamada - ps/callnz /call_pred pode ser aninhada a uma profundidade máxima de 4. Independentemente, as instruções loop - ps/rep - ps podem ser aninhadas a uma profundidade máxima de 4.
Swizzle arbitrário
Há suporte para swizzle arbitrário. Consulte Registro de Origem Girando.
Instruções de gradiente
Há suporte para instruções de gradiente. Consulte dsx - ps, dsy - ps e texldd - ps.
Predicação
Há suporte para a precatório de instruções. Confira Registro de predicado.
Limite de Leitura Dependente
Não há limites de leitura dependentes.
Limite de instrução de textura
Não há limite para 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 do que 32768). O número de instruções executadas pode ser muito maior devido ao suporte a looping. MaxPShaderInstructionsExecuted deve ser pelo menos 2^16.
Contagem de amostragem
O número de amostradores de textura disponíveis é 16.
Tampas do dispositivo
Se ps_3_0 tiver suporte, as seguintes tampas serão compatíveis com hardware (no mínimo):
Tampa | Valor |
---|---|
MaxTextureWidth, MaxTextureHeight | 4K cada |
MaxTextureRepeat | 8 K |
MaxAnisotropy | 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 de varredura são definidas: | D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST no D3DCAPS9 |
Suporte completo para desvio 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 mesclagem de origem | Todos os modos de mesclagem têm suporte como origem (exceto D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA e D3DPBLENDCAPS_BOTHINVSRCALPHA). |
Há suporte para as seguintes tampas de textura: | D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP |
Há suporte para o seguinte 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 têm suporte em estágios de vértice e pixel: | D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE |
Há suporte para todas as tampas do sombreador de pixel. | DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Há suporte para os seguintes recursos: predication, swizzles arbitrários e instruções de gradiente. Não há limite de leitura dependente e não há limite para a mistura de textura e instruções matemáticas. |
Todas as operações de estêncil têm suporte. Isso inclui dois estênceis laterais. | Consulte D3DSTENCILOP |
Tamanho do ponto de suporte do dispositivo por vértice | D3DFVFCAPS_PSIZE no D3DCAPS9 |
Sem potência de 2 suporte de textura. | Suporte completo ou suporte condicional não pow-2; O dispositivo não deve ter a limitação de textura quadrada apenas como em D3DPTEXTURECAPS_SQUAREONLY. |
Se o dispositivo der suporte a vários rendertargets, as seguintes tampas serão compatíveis: | D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
Se vs_3_0 tiver suporte | MaxUserClipPlanes em D3DCAPS9 é 6 |
Tópicos relacionados