dmovc (sm5 - asm)
Komponentenweise bedingte Verschiebung.
dmovc[_sat] dest[.mask], src0[.swizzle], [.swizzle], [_abs][.swizzle], [src2[_abs][.swizzle], |
---|
Element | Beschreibung |
---|---|
Dest |
[in] Das Ziel des Verschiebens. Wenn src0, dann destsrc1 else destsrc2 = = . |
src0 |
[in] Die Komponenten, um die Bedingung zu testen. |
src1 |
[in] Die Komponenten, die verschoben werden sollen, wenn die Bedingung wahr ist. |
src2 |
[in] Die Komponenten, die verschoben werden sollen, wenn die Bedingung falsch ist. |
Hinweise
Im folgenden Beispiel wird gezeigt, wie Sie diese Anweisung verwenden.
if(the dest mask contains .xy)
{
if(the first 32-bit component of src0, post-swizzle,
has any bit set)
{
copy the first double from src1 (post swizzle)
into dest.xy
}
else
{
copy the first double from src2 (post swizzle)
into dest.xy
}
}
if(the dest mask contains .zw)
{
if(the second 32-bit component of src0, post-swizzle,
has any bit set)
{
copy the second double from src1 (post swizzle)
into dest.zw
}
else
{
copy the second double from src2 (post swizzle)
into dest.zw
}
}
Die gültigen Masken für dest sind .xy, .zw, .xyzw.
Die gültigen Schizzles für src0 sind alles. Die ersten beiden Komponenten nach dem Schwarm werden verwendet, um zwei 32-Bit-Bedingungswerte einzuschließen.
Die gültigen Swizzles für src1 und src2 , die Doppel enthalten, sind .xyzw, .xyxy, .zwxy, .zw. sind .xy, .zw und .xyzw.
Die folgenden src-Zuordnungen unten sind nach dem Schwarm:
- dest ist ein double vec2 across (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
- src0 ist eine 32bit/Komponente vec2 über x und y (zw ignoriert).
- src1 ist ein double vec2 across (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
- src2 ist ein double vec2 across (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
Die Modifizierer auf src1 und src2, anders als swizzle, gehen davon aus, dass die Daten doppelt sind. Die Abwesenheit von Modifizierern verschiebt Daten, ohne Bits zu ändern.
Diese Anweisung gilt für die folgenden Shaderphasen:
Scheitelpunkt | Rumpf | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Mindest-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 |