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) | нет |