bfi (sm5 – asm)
Dado um intervalo de bits do LSB de um número, coloque esse número de bits em outro número em qualquer deslocamento.
bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle] |
---|
Item | Descrição |
---|---|
Dest |
[in] O endereço dos resultados. |
src0 |
[in] A largura do campo de bits a ser tomada de src2. |
src1 |
[in] O deslocamento de campo de bits para substituir bits em src3. |
src2 |
[in] O número do qual os bits são obtidos. |
src3 |
[in] O número com bits a serem substituídos. |
Comentários
Os 5 bits LSB de src0 fornecem a largura do campo de bits (0-31) para tirar do src2.
Os 5 bits LSB de src1 fornecem o deslocamento de campo de bits (0-31) para começar a substituir bits no número lido do src3.
Given width, offset:
bitmask = (((1 << width)-1) << offset) & 0xffffffff
dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)
Esta instrução é usada para empacotar inteiros ou sinalizadores.
Esta instrução se aplica aos seguintes estágios de sombreador:
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modelo de sombreador mínimo
Esta instrução tem suporte nos seguintes modelos de sombreador:
Modelo de Sombreador | Com suporte |
---|---|
Modelo de sombreador 5 | sim |
Modelo de sombreador 4.1 | não |
Modelo de sombreador 4 | não |
Modelo de Sombreador 3 (DirectX HLSL) | não |
Modelo de Sombreador 2 (DirectX HLSL) | não |
Modelo de Sombreador 1 (DirectX HLSL) | não |