dmovc (sm5 – asm)
Movimentação condicional em termos de componente.
dmovc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [-]src2[_abs][.swizzle], |
---|
Item | Descrição |
---|---|
Dest |
[in] O destino de movimentação. Se src0, dest = src1 else dest = src2. |
src0 |
[in] Os componentes em que testar a condição. |
src1 |
[in] Os componentes a serem movidos se a condição for verdadeira. |
src2 |
[in] Os componentes a serem movidos se a condição for falsa. |
Comentários
O exemplo a seguir mostra como usar esta instrução.
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
}
}
As máscaras válidas para dest são .xy, .zw, .xyzw.
Os swizzles válidos para src0 são qualquer coisa. Os dois primeiros componentes pós-swizzle são usados para recuar dois valores de condição de 32 bits.
Os swizzles válidos para src1 e src2 que contêm duplos são .xyzw, .xyxy, .zwxy, .zwzw. são .xy, .zw e .xyzw.
Os seguintes mapeamentos src abaixo são pós-swizzle:
- dest é um vec2 duplo entre (x 32LSB, y 32MSB) e (z 32LSB, w 32MSB).
- src0 é um vec2 de 32 bits/componente entre x e y (zw ignorado).
- src1 é um vec2 duplo entre (x 32LSB, y 32MSB) e (z 32LSB, w 32MSB).
- src2 é um vec2 duplo entre (x 32LSB, y 32MSB) e (z 32LSB, w 32MSB).
Os modificadores em src1 e src2, além de swizzle, pressupõem que os dados sejam duplos. A ausência de modificadores move dados sem alterar bits.
Esta instrução se aplica aos seguintes estágios de sombreador:
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modelo de sombreador mínimo
Esta instrução tem suporte nos seguintes modelos de sombreador:
Modelo de Sombreador | Com suporte |
---|---|
Modelo de sombreador 5 | sim |
Modelo de sombreador 4.1 | não |
Modelo de sombreador 4 | não |
Modelo de Sombreador 3 (DirectX HLSL) | não |
Modelo de Sombreador 2 (DirectX HLSL) | não |
Modelo de Sombreador 1 (DirectX HLSL) | não |