dmovc (sm5 - asm)
Komponentenweises bedingtes Verschieben.
| dmovc [ _ sat ] dest [ .mask ] , src0 [ .swizzle ] , [ - ] src1 abs [ _ ] [ .swizzle , ] [ - ] src2 abs [ _ ] [ .swizzle ] , |
|---|
| Element | Beschreibung |
|---|---|
| Dest |
[in ] Das Move-Ziel. Wenn src0, dann dest = src1 else dest = src2. |
| src0 |
[in ] Die Komponenten, für die die Bedingung zu testen ist. |
| src1 |
[in ] Die zu verschiebenden Komponenten, wenn die Bedingung erfüllt ist. |
| src2 |
[in ] Die zu verschiebenden Komponenten, wenn die Bedingung FALSE ist. |
Hinweise
Im folgenden Beispiel wird die Verwendung dieser Anweisung veranschaulicht.
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 eingerückt zu werden.
Die gültigen Swizzles für src1 und src2, die doubles enthalten, sind .xyzw, .xyxy, .zwxy, .zwzw. sind .xy, .zw und .xyzw.
Die folgenden src-Zuordnungen sind post swizzle:
- dest ist ein double vec2 über (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 zwischen (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
- src2 ist ein double-vec2 zwischen (x 32LSB, y 32MSB) und (z 32LSB, w 32MSB).
Bei den Modifizierern für src1 und src2(mit Anderen als Swizzle) wird davon ausgegangen, dass die Daten doppelt sind. Das Fehlen von Modifizierern verschiebt Daten, ohne Bits zu ändern.
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 |