InterlockedCompareStore-Funktion (HLSL-Referenz)
Vergleicht das Ziel atomar mit dem Vergleichswert. Wenn sie identisch sind, wird das Ziel mit dem Eingabewert überschrieben.
Syntax
void InterlockedCompareStore(
in R dest,
in T compare_value,
in T value
);
Parameter
-
dest [in]
-
Typ: R
Die Zieladresse.
-
compare_value [in]
-
Typ: T
Der Vergleichswert.
-
Wert [in]
-
Typ: T
Der Eingabewert.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Bemerkungen
Vergleicht den Wert, auf den von dest verwiesen wird, atomar mit compare_value und speichert den Wert an der Position, auf die von dest verwiesen wird, wenn die Werte übereinstimmen. Dieser Vorgang kann nur für int - oder uint-typisierte Ressourcen und freigegebene Arbeitsspeichervariablen ausgeführt werden. Es gibt zwei mögliche Verwendungsmöglichkeiten für diese Funktion. Die erste ist, wenn R ein Shared Memory-Variablentyp ist. In diesem Fall führt die Funktion den Vorgang für das von dest referenzierte Shared Memory-Register aus. Das zweite Szenario ist, wenn R ein Ressourcenvariablentyp ist. In diesem Szenario führt die Funktion den Vorgang für den Ressourcenspeicherort aus, auf den von dest verwiesen wird.
Ineinander verriegelte Vorgänge bedeuten keinen Speicherzaun bzw. keine Speicherbarriere.
Minimales Shadermodell
Diese Funktion wird in den folgenden Shadermodellen unterstützt.
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 und höher | ja |
Diese Funktion wird in den folgenden Shadertypen unterstützt:
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
x | x | x | x | x | x |
Siehe auch