Fonction InterlockedCompareStore (référence HLSL)
Compare atomiquement la destination à la valeur de comparaison. Si elles sont identiques, la destination est remplacée par la valeur d’entrée.
Syntaxe
void InterlockedCompareStore(
in R dest,
in T compare_value,
in T value
);
Paramètres
-
dest [in]
-
Type : R
Adresse de destination.
-
compare_value [in]
-
Type : T
Valeur de comparaison.
-
value [in]
-
Type : T
Valeur d'entrée.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Notes
Compare atomiquement la valeur référencée par dest avec compare_value et stocke la valeur à l’emplacement référencé par dest si les valeurs correspondent. 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 l’opération sur le 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 l’opération sur l’emplacement de ressource référencé par dest.
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