dmovc (sm5 - asm)
Movimiento condicional basado en componentes.
dmovc[_sat] dest[.mask], src0[.swizzle], **src1[_abs][.swizzle], **src2[_abs][.swizzle], |
---|
Elemento | Descripción |
---|---|
Dest |
[in] Destino de movimiento. Si es src0, dest = src1 else dest = src2. |
src0 |
[in] Componentes con los que se va a probar la condición. |
src1 |
[in] Componentes que se van a mover si la condición es verdadera. |
src2 |
[in] Componentes que se van a mover si la condición es false. |
Comentarios
En el ejemplo siguiente se muestra cómo usar esta instrucción.
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
}
}
Las máscaras válidas para dest son .xy, .zw, .xyzw.
Los swizzles válidos para src0 son cualquier cosa. Los dos primeros componentes posteriores a swizzle se usan para indentificar dos valores de condición de 32 bits.
Los swizzles válidos para src1 y src2 que contienen doubles son .xyzw, .xyxy, .zwxy, .zwzw. son .xy, .zw y .xyzw.
Las siguientes asignaciones de src son posteriores a swizzle:
- dest es un doble vec2 en (x 32LSB, y 32MSB) y (z 32LSB, w 32MSB).
- src0 es un vec2 de 32 bits/componente en x e y (zw omitido).
- src1 es un doble vec2 a través de (x 32LSB, y 32MSB) y (z 32LSB, w 32MSB).
- src2 es un doble vec2 entre (x 32LSB, y 32MSB) y (z 32LSB, w 32MSB).
Los modificadores de src1 y src2, distintos de swizzle, asumen que los datos son dobles. La ausencia de modificadores mueve los datos sin modificar bits.
Esta instrucción se aplica a las siguientes fases del sombreador:
Vértice | Casco | Domain | Geometría | Píxel | Compute |
---|---|---|---|---|---|
x | x | x | x | x | x |
Modelo de sombreador mínimo
Esta instrucción se admite en los siguientes modelos de sombreador:
Modelo de sombreador | Compatible |
---|---|
Modelo de sombreador 5 | sí |
Modelo de sombreador 4.1 | no |
Modelo de sombreador 4 | no |
Modelo de sombreador 3 (DirectX HLSL) | no |
Modelo de sombreador 2 (DirectX HLSL) | no |
Modelo de sombreador 1 (DirectX HLSL) | no |