InterlockedMax-Funktion

Sucht atomar nach dem Höchstwert.

Syntax

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

Parameter

dest [in]

Typ: UINT

Die Zieladresse.

Wert [in]

Typ: UINT

Der Eingabewert.

original_value [out]

Typ: UINT

Der ursprüngliche Wert.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Dieser Vorgang kann nur für int- und uint-typisierte Ressourcen und freigegebene Arbeitsspeichervariablen ausgeführt werden. Es gibt drei 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 ein atomares Maximum des Werts 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 ein atomares Maximum des Werts für den Ressourcenspeicherort aus, auf den von dest verwiesen wird. Schließlich ist das dritte Szenario, wenn R ein lokaler Variablentyp ist. In diesem Szenario reduziert sich die Funktion auf ein Maximum des Werts von dest und value, die in dest gespeichert sind. 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

 

Siehe auch

RWByteAddressBuffer

Shadermodell 5