Freigeben über


InterlockedAnd-Funktion (HLSL-Referenz)

Führt ein garantiertes atomisches und aus.

Syntax

void InterlockedAnd(
  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 Variablentyp mit freigegebenem Speicher ist. In diesem Fall führt die Funktion eine atomice und von Wert für das freigegebene Speicherregister aus, auf das von dest verwiesen wird. Das zweite Szenario ist, wenn R ein Ressourcenvariablentyp ist. In diesem Szenario führt die Funktion einen atomischen und einen Wert für den 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 schreibbar ist.

Ineinandergreifende Vorgänge bedeuten keinen Speicherzaun bzw. keine Barriere.

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

 

Weitere Informationen

Systeminterne Funktionen

Shadermodell 5