次の方法で共有


InterlockedXor 関数

値に対してアトミック XOR を実行します。

構文

void InterlockedXor(
  in  UINT dest,
  in  UINT value,
  out UINT original_value
);

パラメーター

dest [in]

型: UINT

宛先アドレス。

value [in]

型: UINT

入力値。

original_value [out]

型: UINT

元の値。

戻り値

この関数は値を返しません。

注釈

この操作は、 INT または UINT 型のリソースと共有メモリ変数に対してのみ実行できます。 この関数には、3 つの使用が考えられます。 1 つ目は、R が共有メモリ変数型の場合です。 この場合、関数は dest によって参照される共有メモリ レジスタの値を使用してアトミック XOR を実行します。 2 つ目のシナリオは、R がリソース変数の種類である場合です。 このシナリオでは、関数は dest によって参照されるリソースの場所の値を使用してアトミック XOR を実行します。 最後に、3 番目のシナリオは、R がローカル変数型の場合です。 このシナリオでは、関数は dest と value の値の XOR に減らします。 操作の結果は、 dest の値を置き換えます。 オーバーロードされた関数には、元の値 dest に設定される追加の出力変数があります。 このオーバーロードされた操作は、R が読み取り可能で書き込み可能な場合にのみ使用できます。

この関数は、次の種類のシェーダーでサポートされています。

VS HS DS GS PS CS
x x x x x x

 

関連項目

RWByteAddressBuffer

シェーダー モデル 5