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 |