Compartir a través de


if (sm4 - asm)

Rama basada en el resultado or lógico.

if{_z|_nz} src0.select_component
Elemento Descripción
src0
[in] Contiene el componente en el que se va a probar la condición.

Comentarios

El formato de token contiene el desplazamiento de la instrucción endif correspondiente en el Sombreador como comodidad.

En el ejemplo siguiente se muestra cómo usar esta instrucción.

                if_z r0.x // if all bits in r0.x are zero
                   ...
                else // (optional)
                   ...
                endif
                if_nz r1.x // if any bit in r0.x is nonzero
                   ...
                else // (optional)
                   ...
                endif

Restricciones

  • Los operandos de origen (si 4 vectores de componentes) deben usar un único selector de componentes.
  • El registro de 32 bits proporcionado por src0 se prueba en un nivel de bits. Si algún bit es distinto de cero, if_z será true. Si todos los bits son cero, if_nz será true.
  • Los bloques de control de flujo pueden anidar hasta 64 profundidades por subrutina (y main). El compilador HLSL no generará subrutinas que superen este límite. El comportamiento de las instrucciones de flujo de control más allá de 64 niveles de profundidad (por subrutina) no está definido.

Esta instrucción se aplica a las siguientes fases del sombreador:

Sombreador de vértices Sombreador de geometría Sombreador de píxeles
x x x

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1
Modelo de sombreador 4
Modelo de sombreador 3 (DirectX HLSL) no
Modelo de sombreador 2 (DirectX HLSL) no
Modelo de sombreador 1 (DirectX HLSL) no

Ensamblado del modelo de sombreador 4 (DirectX HLSL)