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 | sí |
Modelo de sombreador 4.1 | sí |
Modelo de sombreador 4 | sí |
Modelo de sombreador 3 (DirectX HLSL) | no |
Modelo de sombreador 2 (DirectX HLSL) | no |
Modelo de sombreador 1 (DirectX HLSL) | no |