swapc (sm5 - asm)

Выполняет условное переключение значений между двумя входными регистрами на уровне компонентов.

swapc dst0[.mask], dst1[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Элемент Описание
dst0
[in] Зарегистрируйтесь с произвольными масками непустой записи. Должен отличаться от dst1.
dst1
[in] Зарегистрируйтесь с произвольными масками непустой записи. Должен отличаться от dst0.
src0
[in] Предоставляет 4 условия. Ненулевое целочисленное значение означает true.
src1
[in] Одно из значений для переключения.
src2
[in] Одно из значений для переключения.

Комментарии

Кодирование этой инструкции пытается компактно выразить несколько параллельных условных переключений скаляров в двух 4-компонентных регистрах с незначительной гибкостью в расположении пар чисел, участвующих в переключении.

Выбор регистра и значения для src0, src1 и src2 не ограничен, например movc.

Семантику этой инструкции можно описать эквивалентными операциями с инструкцией movc . В следующем примере показан наихудший случай, при этом регистры назначения не обновляются до конца.

                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

Вы можете выбрать способ решения задачи, если не напрямую. Например, такой же эффект может быть достигнут с помощью последовательности до 4 простых скалярных условных переключений или, как описано выше, двух векторных инструкций movc , а также любых дополнительных затрат, чтобы убедиться, что исходные значения не загромождаться более ранними операциями в разгар расширения.

Используйте эту инструкцию для сортировки.

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

Вершина Корпуса Домен Geometry Пиксель Вычисления
X X X X X X

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

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

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

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