bfi (sm5 - asm)
Учитывая диапазон битов от LSB числа, поместите это число битов в другое число с любым смещением.
bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle] |
---|
Элемент | Описание |
---|---|
Dest |
[in] Адрес результатов. |
src0 |
[in] Ширина битового поля, принимаемая из src2. |
src1 |
[in] Смещение битового поля для замены битов в src3. |
src2 |
[in] Число битов, из которых взяты биты. |
src3 |
[in] Число с битами, которые необходимо заменить. |
Комментарии
5 битов LSB src0 обеспечивают ширину битового поля (0–31), который нужно взять из src2.
5 битов LSB src1 обеспечивают смещение битового поля (0–31), чтобы начать замену битов в число, считываемом из src3.
Given width, offset:
bitmask = (((1 << width)-1) << offset) & 0xffffffff
dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)
Эта инструкция используется для упаковки целых чисел или флагов.
Эта инструкция применяется к следующим этапам шейдера:
Вершина | Корпуса | Домен | Geometry | Пиксель | Вычисления |
---|---|---|---|---|---|
X | X | X | X | X | X |
Минимальная модель шейдера
Эта инструкция поддерживается в следующих моделях шейдеров:
Модель шейдера | Поддерживается |
---|---|
Модель шейдера 5 | да |
Модель шейдера 4.1 | нет |
Модель шейдера 4 | нет |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |