swapc (sm5 - asm)

Realiza un intercambio condicional basado en componentes de los valores entre dos registros de entrada.

swapc dst0[.mask], dst1[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Elemento Descripción
dst0
[in] Regístrese con máscaras de escritura arbitrarias no vacías. Debe ser diferente de dst1.
dst1
[in] Regístrese con máscaras de escritura arbitrarias no vacías. Debe ser diferente de dst0.
src0
[in] Proporciona 4 condiciones. Un valor entero distinto de cero significa true.
src1
[in] Uno de los valores que se van a intercambiar.
src2
[in] Uno de los valores que se van a intercambiar.

Comentarios

La codificación de esta instrucción intenta expresar de forma compacta varios intercambios condicionales paralelos de escalares en dos registros de 4 componentes, con una flexibilidad menor en la disposición de los pares de números implicados en el intercambio.

La elección del registro y el valor de src0, src1 y src2 no están entrenados de ninguna manera, como movc.

La semántica de esta instrucción se puede describir mediante las operaciones equivalentes con la instrucción movc . El peor de los casos se muestra en el ejemplo siguiente, asegurándose de que los registros de destino no se actualizan hasta el final.

                swapc dst0[.mask], 
                      dst1[.mask],
                      src0[.swizzle],
                      src1[.swizzle],
                      src2[.swizzle]

                expands to:

                movc temp[dst0 s mask], 
                     src0[.swizzle], 
                     src2[.swizzle], src1[.swizzle]

                movc dst1[.mask], 
                     src0[.swizzle], 
                     src1[.swizzle], src2[.swizzle]

                mov  dst0.mask, temp

Puede elegir cómo abordar la tarea, si no directamente. Por ejemplo, el mismo efecto se puede lograr mediante una secuencia de hasta 4 intercambios condicionales escalares simples, o como anteriores, dos instrucciones de movimiento de vectores, además de cualquier sobrecarga para asegurarse de que los valores de origen no están obstruido por operaciones anteriores en medio de la expansión.

Use esta instrucción para ordenar.

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

Vértice Casco Dominio Geometría Píxel Compute
X X X X x x

Modelo de sombreador mínimo

Esta instrucción se admite en los siguientes modelos de sombreador:

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1 No
Modelo de sombreador 4 No
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 5 (DirectX HLSL)