movc (sm4 - asm)

Spostamento condizionale a livello di componente.

movc[_sat] dest[.mask], src0[.swizzle], |src1[_abs][.swizzle], |src2[_abs][.swizzle],
Elemento Descrizione
Dest
[in] Indirizzo del risultato dell'operazione.
Se src0, dest src1 else dest = = src2
src0
[in] Componenti in cui testare la condizione.
src1
[in] Componenti da spostare.
src2
[in] Componenti da spostare.

Commenti

Nell'esempio seguente viene illustrato come usare questa istruzione.

                for each component in dest[.mask]
                    if the corresponding component in src0 (POS-swizzle)
                       has any bit set
                    {
                        copy this component (POS-swizzle) from src1 into dest
                    }
                    else
                    {
                        copy this component (POS-swizzle) from src2 into dest
                    }
                endfor

I modificatori su src1 e src2, diversi da swizzle, presuppongono che i dati siano a virgola mobile. L'assenza di modificatori sposta solo i dati senza modificare i bit.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

Modello di shader minimo

Questa funzione è supportata nei modelli shader seguenti.

Modello di shader Supportato
Modello shader 5
Modello shader 4.1
Modello shader 4
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Shader Model 4 Assembly (DirectX HLSL)