宛先レジスタ書き込みマスク
書き込みマスクは、命令の完了後に書き込まれる宛先レジスタのコンポーネントを制御します。 出力書き込みマスクは、コンポーネントが .rgba または .xyzw の順序である限り許可されます。 つまり、.rba と .xw は有効なマスクです。 テクスチャ レジスタには 1 つのルール セットがあり、非テクスチャ レジスタには別のルール セットがあります。
構文
dst.writemask |
---|
where
- dst は宛先レジスタです。
- writemask は、セット (x,y,z,w) または (赤、緑、青、アルファ) のマスクのシーケンスです。
解説
次の宛先書き込みマスクを使用できます。
ピクセル シェーダーのバージョン | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
.xyzw (既定値) | x | x | x | x | x | x | x | x | x |
。Xyz | x | x | x | x | x | x | x | x | x |
。W | x | x | x | x | x | x | x | x | x |
任意のマスク | x | x | x | x | x | x |
任意のマスクを使用すると、任意のチャネルセットを組み合わせてマスクを生成できます。 チャネルは、変換先の赤、青、アルファチャネルを更新する register.rba などの順序 r、g、b、a に一覧表示する必要があります。 任意のマスクは、バージョン 1_4 以降で使用できます。
宛先書き込みマスクが指定されていない場合、宛先書き込みマスクの既定値は rgba ケースになります。 つまり、宛先レジスタ内のすべてのチャネルが更新されます。
バージョン 1_0 から 1_3 の場合、 dp3 - ps dp3 算術命令では、.rgb または .rgba 出力書き込みマスクのみを使用できます。
宛先レジスタ書き込みマスクは、算術演算でのみサポートされます。 テクスチャ アドレス指定命令では使用できません。バージョン 1_4 命令、 texcrd - ps 、 texld - ps_2_0以降を除きます。
既定では、4 つのカラー チャネルをすべて書き込みます。
// All four color channels can be written by explicitly listing them.
mul r0.rgba, t0, v0
// Or, the default mask can be used to write all four channels.
mul r0, t0, v0
アルファ書き込みマスクはスカラー 書き込みマスクとも呼ばれます。これは、スカラー パイプラインを使用するためです。
add r0.a, t1, v1
したがって、この命令は効果的にt1のアルファ成分とv1のアルファ成分の合計をr0.aに入れます。
カラー 書き込みマスクは、カラー チャネルへの書き込みを制御するために使用されます。
// The color write mask is also referred to as the vector write mask,
// because it uses the vector pipeline.
mul r0.rgb, t0, v0
バージョン 1_4 の場合、コピー先の書き込みマスクは、マスクが r,g,b,a に順序付けされている限り、任意の組み合わせで使用できます。
// This example updates the red, blue, and alpha channels.
mov r0.rba, r1
共同発行命令を使用すると、2 つの異なる可能性がある命令を同時に発行できます。 これは、アルファ パイプラインと RGB パイプラインで命令を実行することによって実現されます。
mul r0.rgb, t0, v0
+ add r1.a, t1, c1
このように命令をペアリングする利点は、ベクターパイプラインとスカラーパイプラインで異なる操作を並列で実行できるという点です。
これらの頂点シェーダー出力レジスタは、次の書き込みマスクに制限されます。
レジスタの種類 | 必須の書き込みマスク |
---|---|
oFog | このスカラー レジスタでは明示的な書き込みマスクは許可されません |
Opts | このスカラー レジスタでは明示的な書き込みマスクは許可されません |
oPos | .xyzw(これが既定値) |
Ot# | 結合マスク: .x | .xy | .xyz | .xyzw (既定値) |
関連トピック