Fonction InterlockedAdd (référence HLSL)
Effectue un ajout atomique garanti de valeur à la variable de ressource dest.
Syntaxe
void InterlockedAdd(
in R dest,
in T value,
out T original_value
);
Paramètres
-
dest [in]
-
Type : R
Adresse de destination.
-
value [in]
-
Type : T
Valeur d'entrée.
-
original_value [out]
-
Type : T
Optionnel. Valeur d’entrée d’origine.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Notes
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 deux utilisations possibles pour 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 valeur à l’emplacement de ressource référencé par 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 n’est disponible que lorsque R est lisible et accessible en écriture.
Les opérations interblocées n’impliquent aucune barrière/barrière de mémoire.
Modèle de nuanceur minimal
Cette fonction est prise en charge dans les modèles de nuanceur suivants.
Modèle de nuanceur | Prise en charge |
---|---|
Modèles de nuanceur 5 et versions ultérieures | Oui |
Cette fonction est prise en charge dans les types de nuanceurs suivants :
Sommet | Coque | Domain | Géométrie | Pixel | Compute |
---|---|---|---|---|---|
x | x | x | x | x | x |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour