movc (sm4 - asm)
Komponentenweises bedingtes Verschieben.
| movc [ _ sat ] dest [ .mask ] , src0 [ .swizzle ] , [ - ] src1 abs [ _ ] [ .swizzle , ] [ - ] src2 abs [ _ ] [ .swizzle ] , |
|---|
| Element | BESCHREIBUNG |
|---|---|
| Dest |
[in ] Die Adresse des Ergebnisses des Vorgangs. Wenn src0, dann dest = src1 else dest = src2 |
| src0 |
[in ] Die Komponenten, für die die Bedingung getestet werden soll. |
| src1 |
[in ] Die zu verschiebende Komponenten. |
| src2 |
[in ] Die zu verschiebende Komponenten. |
Hinweise
Im folgenden Beispiel wird die Verwendung dieser Anweisung veranschaulicht.
for each component in dest[.mask]
if the corresponding component in src0 (POS-swizzle)
has any bit set
{
copy this component (POS-swizzle) from src1 into dest
}
else
{
copy this component (POS-swizzle) from src2 into dest
}
endfor
Die Modifizierer für src1 und src2, mit Ausnahme von swizzle, setzen voraus, dass es sich bei den Daten um Gleitkommadaten handelt. Das Fehlen von Modifizierern verschiebt nur Daten, ohne Bits zu ändern.
Diese Anweisung gilt für die folgenden Shaderstufen:
| Vertexshader | Geometrie-Shader | Pixelshader |
|---|---|---|
| x | x | x |
Shader-Mindestmodell
Diese Funktion wird in den folgenden Shadermodellen unterstützt.
| Shadermodell | Unterstützt |
|---|---|
| Shadermodell 5 | Ja |
| Shadermodell 4.1 | Ja |
| Shadermodell 4 | Ja |
| Shadermodell 3 (DirectX HLSL) | Nein |
| Shadermodell 2 (DirectX HLSL) | Nein |
| Shadermodell 1 (DirectX HLSL) | Nein |