InterlockedAdd-Funktion (HLSL-Referenz)
Führt einen garantierten atomaren Mehrwert zur Dest-Ressourcenvariablen aus.
Syntax
void InterlockedAdd(
in R dest,
in T value,
out T original_value
);
Parameter
-
dest [in]
-
Typ: R
Die Zieladresse.
-
Wert [in]
-
Typ: T
Der Eingabewert.
-
original_value [out]
-
Typ: T
Optional. Der ursprüngliche Eingabewert.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Bemerkungen
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 eine atomare Wertzufügung zum Shared Memory-Register aus, auf das von dest verwiesen wird. Das zweite Szenario ist, wenn R ein Ressourcenvariablentyp ist. In diesem Szenario führt die Funktion eine atomare Wertzufügung zum Ressourcenspeicherort aus, auf den von dest verwiesen wird. 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 beschreibbar ist.
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