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 |