bfi (sm5 - asm)
Dato un intervallo di bit dall'LSB di un numero, posizionare tale numero di bit in un altro numero in qualsiasi offset.
bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle] |
---|
Elemento | Descrizione |
---|---|
Dest |
[in] Indirizzo dei risultati. |
src0 |
[in] Larghezza del campo di bit da prendere da src2. |
src1 |
[in] Offset del campo di bit per la sostituzione dei bit in src3. |
src2 |
[in] Numero da cui vengono ricavati i bit. |
src3 |
[in] Numero con bit da sostituire. |
Commenti
I bit LSB 5 di src0 forniscono la larghezza del campo di bit (0-31) da prendere da src2.
I bit LSB 5 di src1 forniscono l'offset del campo di bit (0-31) per iniziare a sostituire i bit nel numero letto da src3.
Given width, offset:
bitmask = (((1 << width)-1) << offset) & 0xffffffff
dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)
Questa istruzione viene utilizzata per la compressione di numeri interi o flag.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertice | Scafo | Dominio | Geometria | Pixel | Calcolo |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modello minimo shader
Questa istruzione è supportata nei modelli di shader seguenti:
Modello di shader | Supportato |
---|---|
Modello shader 5 | sì |
Modello shader 4.1 | no |
Modello shader 4 | no |
Modello shader 3 (DirectX HLSL) | no |
Modello shader 2 (DirectX HLSL) | no |
Modello shader 1 (DirectX HLSL) | no |