dmovc (sm5 - asm)
Komponentenweise bedingte Verschiebung.
dmovc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [src2[_abs][.swizzle], |
---|
Element | Beschreibung |
---|---|
Dest |
[in] Das Verschiebungsziel. Wenn src0, dann dest = src1 else dest = src2. |
src0 |
[in] Die Komponenten, anhand derer die Bedingung getestet werden soll. |
src1 |
[in] Die Komponenten, die verschoben werden sollen, wenn die Bedingung wahr ist. |
src2 |
[in] Die Komponenten, die verschoben werden sollen, wenn die Bedingung false ist. |
Bemerkungen
Das folgende Beispiel zeigt, 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 Swizzles für src0 sind alles. Die ersten beiden Komponenten nach dem Swizzle werden verwendet, um zwei 32-Bit-Bedingungswerte einzurücken.
Die gültigen Swizzles für src1 und src2 , die Doubles enthalten, sind .xyzw, .xyxy, .zwxy, .zwzwzw. sind .xy, .zw und .xyzw.
Die folgenden src-Zuordnungen unten sind post-swizzle:
- dest ist ein Double vec2 across (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
- src0 ist ein 32-Bit-/Komponenten-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 für src1 und src2, mit Ausnahme von swizzle, gehen davon aus, dass die Daten doppelt sind. Das Fehlen von Modifizierern verschiebt Daten, ohne Bits zu ändern.
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 |