movc (sm4 – asm)

Movimentação condicional em termos de componente.

movc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [-]src2[_abs][.swizzle],
Item Descrição
Dest
[in] O endereço do resultado da operação.
Se src0, dest = src1 else dest = src2
src0
[in] Os componentes nos quais testar a condição.
src1
[in] Os componentes a serem movidos.
src2
[in] Os componentes a serem movidos.

Comentários

O exemplo a seguir mostra como usar esta instrução.

                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

Os modificadores em src1 e src2, além de swizzle, pressupõem que os dados sejam de ponto flutuante. A ausência de modificadores apenas move dados sem alterar bits.

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de sombreador 3 (DirectX HLSL) não
Modelo de sombreador 2 (DirectX HLSL) não
Modelo de sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 4 (DirectX HLSL)