dmovc (sm5 - asm)
以元件為基礎的條件式移動。
dmovc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [-]src2[_abs][.swizzle], |
---|
項目 | 描述 |
---|---|
dest |
[in]移動目的地。 如果src0,則dest = src1 else dest = src2。 |
src0 |
[in]要測試條件的元件。 |
src1 |
[in]如果條件為 true,要移動的元件。 |
src2 |
[in]如果條件為 false,則為要移動的元件。 |
備註
下列範例示範如何使用這個指示。
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
}
}
dest 的有效遮罩為 .xy、.zw、.xyzw。
src0的有效 Swizzles 是任何專案。 前兩個元件會在 swizzle 後用來縮排兩個 32 位條件值。
src1和src2包含雙精度浮點的有效 swizzles 為 .xyzw、.xyxy、.zwxy、.zwzw。 為 .xy、.zw 和 .xyzw。
下列 src 對應是後置 swizzle:
- dest 是跨 (x 32LSB、y 32MSB) 和 (z 32LSB、w 32MSB) 的雙 vec2。
- src0 是跨 x 和 y (zw 忽略的 32 位/元件 vec2) 。
- src1 是跨 (x 32LSB、y 32MSB) 和 (z 32LSB、w 32MSB) 的雙 vec2。
- src2 是跨 (x 32LSB、y 32MSB) 和 (z 32LSB 的雙 vec2,w 32MSB) 。
src1和src2上的修飾詞,除了 swizzle 之外,假設資料為 double。 缺少修飾詞會移動資料而不改變位。
本指示適用于下列著色器階段:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
X | X | X | X | X | X |
最小著色器模型
下列著色器模型支援此指示:
著色器模型 | 支援 |
---|---|
著色器模型 5 | 是 |
著色器模型 4.1 | 否 |
著色器模型 4 | 否 |
著色器模型 3 (DirectX HLSL) | 否 |
著色器模型 2 (DirectX HLSL) | 否 |
著色器模型 1 (DirectX HLSL) | 否 |