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.
- ps_3_0 Instrucciones contiene una lista de las instrucciones disponibles.
- ps_3_0 Registra enumera los distintos tipos de registros usados por el sombreador de píxeles ALU.
- Modificadores Se usan para modificar la forma en que funciona una instrucción.
- Destination Register Write Mask determina qué componentes del registro de destino se escriben.
- Los modificadores de registro de origen del sombreador de píxeles modifican los datos de registro de origen antes de que se ejecute la instrucción.
- Source Register Swizzling proporciona un control adicional sobre qué componentes de registro se leen, copian o 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 |
Temas relacionados