Funzione InterlockedMax (riferimento HLSL)

Esegue un massimo atomico garantito.

Sintassi

void InterlockedMax(
  in  R dest,
  in  T value,
  out T original_value
);

Parametri

dest [in]

Tipo: R

Indirizzo di destinazione.

value [in]

Tipo: T

Valore di input.

original_value [out]

Tipo: T

Facoltativa. Valore di input originale.

Valore restituito

Questa funzione non restituisce un valore.

Commenti

Questa operazione può essere eseguita solo su risorse tipizzate int e uint e variabili di memoria condivisa. Per questa funzione sono disponibili due usi possibili. Il primo è quando R è un tipo di variabile di memoria condivisa. In questo caso, la funzione esegue un valore massimo atomico per il registro di memoria condivisa a cui fa riferimento dest. Il secondo scenario è quando R è un tipo di variabile di risorsa. In questo scenario, la funzione esegue un valore massimo atomico per la posizione della risorsa a cui fa riferimento dest. La funzione di overload ha una variabile di output aggiuntiva che verrà impostata sul valore originale di dest. Questa operazione di overload è disponibile solo quando R è leggibile e scrivibile.

Le operazioni interlocked non implicano alcuna barriera/recinto di memoria.

Modello minimo shader

Questa funzione è supportata nei modelli di shader seguenti.

Modello di shader Supportato
Modello shader 5 e versioni successive dello shader

 

Questa funzione è supportata nei tipi di shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
x x x x x x

 

Vedi anche

Funzioni intrinseche

Modello shader 5