Condividi tramite


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

RWByteAddressBuffer

Modello shader 5