switch (sm4 - asm)

Transfiere el control a un bloque de instrucciones diferente dentro del cuerpo del conmutador en función del valor de un selector.

switch src0.select_component
Elemento Descripción
src0
[in] Selector de la instrucción switch.

Comentarios

Una construcción switch/endswitch se comporta exactamente como una construcción switch en el lenguaje C, con la siguiente excepción: para las instruccionespredeterminadas de mayúsculas/ y minúsculas D3D11 que pasan al siguiente caso/predeterminado sin una interrupción no pueden tener ningún código en ellos. Se permite que varias instrucciones case , incluido el valor predeterminado, aparezcan secuencialmente y compartan el mismo bloque de código.

La condición debe ser un componente de registro de 32 bits o una cantidad inmediata. La comparación de igualdad es bit a bit (entero).

Al igual que con cualquier instrucción de Sombreador en D3D11, el hardware puede o no implementar la construcción del conmutador directamente.

Las instrucciones switch se pueden anidar. Cada bloque switch cuenta como 1 nivel con respecto al límite de profundidad de anidamiento del control de flujo de 64 por subrutina y main, independientemente del número de instrucciones case . 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.

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

                ...
                switch r0.x
                default: // falling through
                case 3
                    switch r1.x
                    case 4
                        ...
                        break
                    case 5
                        ...
                        break
                    endswitch
                    break
                case 0
                    break
                endswitch

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)