Compartir a través de


ps_3_0

Un sombreador de píxeles programable se compone de un conjunto de instrucciones que funcionan en datos de píxeles. Registra la transferencia de datos dentro y fuera de la ALU. Se puede aplicar un control adicional para modificar la instrucción, los resultados o los datos que se escriben.

Características nuevas

Agregue un registro facial. Agregue un registro de posición. Los registros de color (v#) ahora son totalmente de punto flotante y se han consolidado los registros de coordenadas de textura (t#). Las declaraciones de entrada toman los nombres de uso y se permiten varios usos para los componentes de un registro determinado.

Control de flujo dinámico

El dispositivo admite el control de flujo dinámico (si bool - ps, break - ps y break_comp - ps). La profundidad de anidamiento oscila entre 0 y 24.

Número de registros temporales

El número de registros temporales admitidos es 32.

Profundidad de anidamiento del control de flujo estático

La llamada - ps/callnz /call_pred se puede anidar a una profundidad máxima de 4. Independientemente, las instrucciones loop - ps/rep - ps se pueden anidar a una profundidad máxima de 4.

Swizzle arbitrario

Se admite swizzle arbitrario. Consulte Registro de origen de Swizzling.

Instrucciones de degradado

Se admiten instrucciones de degradado. Consulte dsx - ps, dsy - ps y texldd - ps.

Predicación

Se admite la predicación de instrucciones. Consulte Registro de predicados.

Límite de lectura dependiente

No hay límites de lectura dependientes.

Límite de instrucciones de textura

No hay ningún límite en las instrucciones de textura.

Recuento de instrucciones

Cada sombreador de píxeles se permite desde 512 hasta el número de ranuras de MaxPixelShader30InstructionSlots (no más de 32768). El número de instrucciones que se ejecutan puede ser mucho mayor debido a la compatibilidad con bucles. MaxPShaderInstructionsExecuted debe ser de al menos 2^16.

Recuento de muestras

El número de muestreadores de textura disponibles es 16.

Límites de dispositivos

Si se admite ps_3_0, se admiten los límites siguientes en hardware (como mínimo):

Tapa Valor
MaxTextureWidth, MaxTextureHeight 4K cada uno
MaxTextureRepeat 8 K
MaxAnisotropy 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
Se establecen los siguientes límites primitivos: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
Se establecen los siguientes límites de trama: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST en D3DCAPS9
Compatibilidad completa con el sesgo de profundidad, entre los que se incluyen: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Conjunto completo de comparaciones para pruebas de profundidad y alfa, entre las que se incluyen: Todos los D3DPCMPCAPS en D3DCAPS9.
Modos de fusión de origen Todos los modos de mezcla se admiten como origen (excepto D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA y D3DPBLENDCAPS_BOTHINVSRCALPHA).
Se admiten los límites de textura siguientes: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
A continuación se admiten los límites de filtro de textura, los límites de filtro de textura de volumen y los límites de filtro de textura del cubo: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (esto no es necesario para VolumeTextureFilterCaps y CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR
Los siguientes modos de dirección de textura se admiten en fases de vértices y píxeles: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Se admiten todos los límites del sombreador de píxeles. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Se admiten las siguientes características: predicación, swizzles arbitrarios e instrucciones de degradado. No hay ningún límite de lectura dependiente y no hay ningún límite en la combinación de texturas e instrucciones matemáticas.
Se admiten todas las operaciones de galería de símbolos. Esto incluye dos galerías de símbolos laterales. Consulte D3DSTENCILOP.
Tamaño del punto de compatibilidad del dispositivo por vértice D3DFVFCAPS_PSIZE en D3DCAPS9
Compatibilidad sin potencia de 2 texturas. Compatibilidad total o compatibilidad condicional no pow-2; el dispositivo no debe tener la limitación de textura cuadrada solo como en D3DPTEXTURECAPS_SQUAREONLY.
Si el dispositivo admite varios rendertargets, se admiten los límites siguientes: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Si se admite vs_3_0 MaxUserClipPlanes en D3DCAPS9 es 6

 

Sombreadores de píxeles