ibfe (sm5 - asm)

Учитывая диапазон битов в числе, переместите эти биты в LSB и знак расширения MSB диапазона.

ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Элемент Описание
Dest
[in] Адрес результатов операции.
src0
[in] Ширина битового поля.
src1
[in] Смещение битового поля.
src2
[in] Сдвигаемое значение.

Комментарии

LSB 5 бит src0 обеспечивают ширину битового поля (0–31).

LSB 5 бит src1 обеспечивают смещение битового поля (0–31).

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

        Given width, offset:
                if( width == 0 )
                {
                    dest = 0
                }
                else if( width + offset < 32 )
                {
                    shl dest, src2, 32-(width+offset)
                    ishr dest, dest, 32-width
                }
                else
                {
                    ishr dest, src2, offset
                }

Используйте эту инструкцию для распаковки целых чисел или флагов со знаком.

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

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

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

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

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

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