InterlockedAdd fonction)

Ajoute la valeur, atomiquement.

Syntaxe

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

Paramètres

dest [ . dans]

Type : uint

Adresse de destination.

valeur [ dans]

Type : uint

Valeur d'entrée.

_ valeur d’origine []

Type : uint

Valeur d'origine.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Remarques

Cette opération ne peut être effectuée que sur des ressources typées int ou uint et des variables de mémoire partagée. Il existe trois utilisations possibles de cette fonction. La première est lorsque R est un type de variable de mémoire partagée. Dans ce cas, la fonction effectue un ajout atomique de valeur au registre de mémoire partagée référencé par dest. Le deuxième scénario est lorsque R est un type de variable de ressource. Dans ce scénario, la fonction effectue un ajout atomique de la valeur à l’emplacement de la ressource référencé par dest. Enfin, le troisième scénario est lorsque R est un type de variable locale. Dans ce scénario, la fonction réduit à une somme de la valeur de dest et de value, stockée dans dest. La fonction surchargée a une variable de sortie supplémentaire qui sera définie sur la valeur d’origine de dest. Cette opération surchargée est disponible uniquement lorsque R est accessible en lecture et en écriture.

Cette fonction est prise en charge dans les types de nuanceurs suivants :

VS SH Source de données GS PS CS
x x x x x x

Configuration requise

Voir aussi

RWByteAddressBuffer

Shader, modèle 5