Partager via


Fonction InterlockedXor (référence HLSL)

Effectue un xor atomique garanti.

Syntaxe

void InterlockedXor(
  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 les ressources de type int ou uint et les 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 XOR atomique de valeur au registre de mémoire partagée référencé par dest. Le deuxième scénario est quand R est un type de variable de ressource. Dans ce scénario, la fonction exécute une valeur XORof atomique à 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 verrouillées n’impliquent aucune barrière ou 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èle de nuanceur 5 et modèles de nuanceur supérieurs 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

Fonctions intrinsèques

Modèle de nuanceur 5