次の方法で共有


dmovc (sm5 - asm)

コンポーネントごとの条件付き移動。

dmovc[_sat] dest[.mask], src0[.swizzle], [-]src1[_abs][.swizzle], [-]src2[_abs][.swizzle],
Item 説明
Dest
[入力]移動先。
src0 の場合は、dest = src1 else dest = src2
src0
[入力]条件をテストする対象のコンポーネント。
src1
[入力]条件が true の場合に移動するコンポーネント。
src2
[入力]条件が 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 の有効なスウィズルは何でもです。 スウィズル後の最初の 2 つのコンポーネントは、2 つの 32 ビット条件値をインデントするために使用されます。

doubles を含む src1src2 の有効な swizzle は、.xyzw、.xyxy、.zwxy、.zwzw です。 は、.xy、.zw、および .xyzw です。

次の src マッピングは、スウィズル後です。

  • dest は、(x 32LSB、y 32MSB) と (z 32LSB、w 32MSB) 全体の二重 vec2 です。
  • src0 は、x と y の 32 ビット/コンポーネント vec2 です (zw は無視されます)。
  • src1 は、(x 32LSB、y 32MSB) と (z 32LSB、w 32MSB) 全体の二重 vec2 です。
  • src2 は、(x 32LSB、y 32MSB) と (z 32LSB、w 32MSB) 全体の二重 vec2 です。

swizzle 以外の src1src2 の修飾子は、データが double であると仮定します。 修飾子がない場合は、ビットを変更せずにデータを移動します。

この命令は、次のシェーダー ステージに適用されます。

Vertex Hull Domain ジオメトリ ピクセル Compute
X X X X X X

最小シェーダー モデル

この命令は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 no
シェーダー モデル 4 no
シェーダー モデル 3 (DirectX HLSL) no
シェーダー モデル 2 (DirectX HLSL) no
シェーダー モデル 1 (DirectX HLSL) no

シェーダー モデル 5 アセンブリ (DirectX HLSL)