Funzione InterlockedOr
Esegue un OR atomico sul valore.
Sintassi
void InterlockedOr(
in UINT dest,
in UINT value,
out UINT original_value
);
Parametri
-
dest [in]
-
Tipo: UINT
Indirizzo di destinazione.
-
valore [in]
-
Tipo: UINT
Valore di input.
-
original_value [out]
-
Tipo: UINT
Valore originale.
Valore restituito
Nothing
Commenti
Questa operazione può essere eseguita solo nelle risorse digitate INT o UINT e nelle variabili di memoria condivise. Per questa funzione sono disponibili tre possibili usi. Il primo è quando R è un tipo di variabile di memoria condivisa. In questo caso, la funzione esegue un OR atomico con il valore del registro di memoria condivisa a cui fa riferimento il dest. Il secondo scenario è quando R è un tipo di variabile di risorsa. In questo scenario la funzione esegue un OR atomico con il valore della posizione della risorsa a cui fa riferimento il più possibile. Infine, il terzo scenario è quando R è un tipo di variabile locale. In questo scenario, la funzione riduce a un or con i valori di più e valore. Il risultato dell'operazione sostituisce il valore di più dest. La funzione di overload dispone di una variabile di output aggiuntiva, che verrà impostata sul valore originale del massimo. Questa operazione di overload è disponibile solo quando R è leggibile e scrivibile.
Questa funzione è supportata nei tipi di shader seguenti:
VS | HS | DS | GS | PS | CS |
---|---|---|---|---|---|
x | x | x | x | x | x |
Vedi anche