bfi (sm5 - asm)

Platzieren Sie bei einem Bitbereich von der LSB einer Zahl 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 zu übernehmen ist.
src1
[in ] Der Bitfeldoffset zum Ersetzen von Bits in src3.
src2
[in ] Die Zahl, aus der die Bits entfernt werden.
src3
[in ] Die Zahl mit bits, die ersetzt werden sollen.

Hinweise

Die LSB 5 Bits von src0 stellen die Bitfeldbreite (0-31) für src2 zur Verfügung.

Die LSB 5 Bits von src1 stellen den Bitfeldoffset (0-31) zur Verfügung, 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 von ganzen Zahlen oder Flags verwendet.

Diese Anweisung gilt für die folgenden Shaderstufen:

Scheitelpunkt Rumpf 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

Shader Model 5-Assembly (DirectX HLSL)