InterlockedAdd

dest リソース変数に対して、値を保証したアトミック加算を実行します。

void 
InterlockedAdd(
  R dest,
  T value,
  T original_value
);

パラメータ

  • dest
    目的とする場所のアドレス。
  • value
    入力値。
  • original_value
    (省略可能)元の入力値。

戻り値

なし

解説 

この操作は、int 型または uint 型のリソースおよび共有メモリー変数についてのみ実行できます。この関数には 3 種類の用途があります。1 番目は、R が共有メモリー変数型である場合です。この場合、この関数は、dest で参照されている共有メモリーのレジスタに対して value のアトミック加算を実行します。2 番目のシナリオは、R がリソース変数型である場合です。このシナリオでは、この関数が、dest で参照されているリソースの場所に対して value のアトミック加算を実行します。3 番目のシナリオは、R がローカル変数型である場合です。このシナリオでは、変数 dest に value を加算して dest に格納するという単純な処理となります。オーバーロードされた関数には、dest の元の値に設定される出力変数が別に存在します。このオーバーロードされる操作は、R が読み書きできる場合にのみ可能です。

最低限必要なシェーダー モデル

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

シェーダー モデル サポート
シェーダー モデル 5 以上のシェーダー モデル

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

頂点 ハル ドメイン ジオメトリ ピクセル 演算
x x

関連項目

シェーダー モデル 5