movc (sm4 - asm)

Условное перемещение на уровне компонентов.

movc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [-]src2[_abs][.swizzle],
Элемент Описание
Dest
[in] Адрес результата операции.
Если src0, то dest = src1 else dest = src2
src0
[in] Компоненты, на которых проверяется условие.
src1
[in] Компоненты для перемещения.
src2
[in] Компоненты для перемещения.

Комментарии

В следующем примере показано, как использовать эту инструкцию.

                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

Модификаторы src1 и src2, кроме swizzle, предполагают, что данные являются плавающей запятой. Отсутствие модификаторов просто перемещает данные без изменения битов.

Эта инструкция применяется к следующим этапам шейдера:

Вершинный построитель текстуры Шейдер геометрии Построитель текстуры
x x x

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

Модель шейдера Поддерживается
Модель шейдера 5 да
Модель шейдера 4.1 да
Модель шейдера 4 да
Модель шейдера 3 (DirectX HLSL) нет
Модель шейдера 2 (DirectX HLSL) нет
Модель шейдера 1 (DirectX HLSL) нет

Сборка шейдера модели 4 (DirectX HLSL)