InterlockedXor-Funktion

Führt einen atomaren XOR für den Wert aus.

Syntax

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

Parameter

dest [ In]

Typ: UINT

Die Zieladresse.

wert [ In]

Typ: UINT

Der Eingabewert.

Ursprünglicher _ Wert [ out]

Typ: UINT

Der ursprüngliche Wert.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Hinweise

Dieser Vorgang kann nur für INT- oder UINT-typisierte Ressourcen und Freigegebene Speichervariablen ausgeführt werden. Es gibt drei mögliche Verwendungsmöglichkeiten für diese Funktion. Die erste ist, wenn R ein Variablentyp für gemeinsam genutzten Arbeitsspeicher ist. In diesem Fall führt die Funktion ein atomares XOR mit dem Wert des Shared Memory-Registers aus, auf das vom Dest verwiesen wird. Das zweite Szenario ist, wenn R ein Ressourcenvariablentyp ist. In diesem Szenario führt die Funktion einen atomaren XOR mit dem Wert des Ressourcenspeicherorts aus, auf den vom Dest verwiesen wird. Schließlich ist das dritte Szenario, wenn R ein lokaler Variablentyp ist. In diesem Szenario reduziert die Funktion auf einen XOR der Werte dest und value. Das Ergebnis des Vorgangs ersetzt den Wert in dest. Die überladene Funktion verfügt über eine zusätzliche Ausgabevariable, die auf den ursprünglichen Wert von dest festgelegt wird. Dieser überladene Vorgang ist nur verfügbar, wenn R lesbar und schreibbar ist.

Diese Funktion wird in den folgenden Shadertypen unterstützt:

VS Hs DS GS PS CS
x x x x x x

Weitere Informationen

RWByteAddressBuffer

Shadermodell 5