Funzione InterlockedAnd (riferimento HLSL)
Esegue un atomico garantito e.
Sintassi
void InterlockedAnd(
in R dest,
in T value,
out T original_value
);
Parametri
-
dest [in]
-
Tipo: R
Indirizzo di destinazione.
-
valore [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 digitate int o uint e variabili di memoria condivise. Per questa funzione sono disponibili due possibili usi. Il primo è quando R è un tipo di variabile di memoria condivisa. In questo caso, la funzione esegue un valore atomico e di valore al registro di memoria condivisa a cui fa riferimento il più dest. Il secondo scenario è quando R è un tipo di variabile di risorsa. In questo scenario la funzione esegue un valore atomico e di valore alla posizione della risorsa a cui fa riferimento il più possibile. La funzione di overload ha una variabile di output aggiuntiva che verrà impostata sul valore originale del massimo. Questa operazione di overload è disponibile solo quando R è leggibile e scrivibile.
Le operazioni interlocked non implicano alcuna barriera/recinto di memoria.
Modello di shader minimo
Questa funzione è supportata nei modelli shader seguenti.
Modello di shader | Supportato |
---|---|
Modelli shader 5 e versioni successive dello shader | sì |
Questa funzione è supportata nei tipi di shader seguenti:
Vertice | Scafo | Dominio | Geometria | Pixel | Calcolo |
---|---|---|---|---|---|
x | x | x | x | x | x |
Vedi anche