ibfe (sm5 - asm)
Wenn Sie einen Bereich von Bits in einer Zahl verwenden, verschieben Sie diese Bits in den LSB, und erweitern Sie den MSB des Bereichs.
ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
Element | BESCHREIBUNG |
---|---|
Dest |
[in] Die Adresse der Ergebnisse des Vorgangs. |
src0 |
[in] Die Bitfeldbreite. |
src1 |
[in] Der Bitfeldoffset. |
src2 |
[in] Der zu verschiebende Wert. |
Bemerkungen
Die LSB 5 Bits von src0 geben die Bitfeldbreite (0-31) an.
Die LSB 5 Bits von src1 stellen den Bitfeldoffset (0-31) bereit.
Im folgenden Beispiel wird gezeigt, wie Sie diese Anweisung verwenden.
Given width, offset:
if( width == 0 )
{
dest = 0
}
else if( width + offset < 32 )
{
shl dest, src2, 32-(width+offset)
ishr dest, dest, 32-width
}
else
{
ishr dest, src2, offset
}
Verwenden Sie diese Anweisung, um ganze Zahlen oder Flags mit Vorzeichen zu entpacken.
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 |