bfi (sm5 - asm)

Wenn Sie einen Bitbereich vom LSB einer Zahl erhalten, platzieren Sie diese Anzahl von Bits in einer anderen Zahl an einem beliebigen Offset.

bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle]
Element Beschreibung
Dest
[in] Die Adresse der Ergebnisse.
src0
[in] Die Bitfeldbreite, die von src2 verwendet werden soll.
src1
[in] Der Bitfeldoffset zum Ersetzen von Bits in src3.
src2
[in] Die Zahl, aus der die Bits stammen.
src3
[in] Die Zahl mit zu ersetzenden Bits.

Bemerkungen

Die LSB 5 Bits von src0 geben die Bitfeldbreite (0-31) an, die von src2 verwendet werden soll.

Die LSB 5 Bits von src1 stellen den Bitfeldoffset (0-31) bereit, um mit dem Ersetzen von Bits in der aus src3 gelesenen Zahl zu beginnen.

Given width, offset:
                bitmask = (((1 << width)-1) << offset) & 0xffffffff
                dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)

Diese Anweisung wird zum Packen ganzer Zahlen oder Flags verwendet.

Diese Anweisung gilt für die folgenden Shaderphasen:

Scheitelpunkt Hull Domain Geometrie Pixel Compute
X X X X X X

Minimales Shadermodell

Diese Anweisung wird in den folgenden Shadermodellen unterstützt:

Shadermodell Unterstützt
Shadermodell 5 ja
Shadermodell 4.1 Nein
Shadermodell 4 Nein
Shadermodell 3 (DirectX HLSL) Nein
Shadermodell 2 (DirectX HLSL) Nein
Shadermodell 1 (DirectX HLSL) Nein

Assembly des Shadermodells 5 (DirectX HLSL)