mad (funzione)
Esegue un'operazione di moltiplicazione/aggiunta aritmetica su tre valori.
Sintassi
numeric mad(
in numeric mvalue,
in numeric avalue,
in numeric bvalue
);
Parametri
-
mvalue [in]
-
Tipo: numerico
Valore di moltiplicazione.
-
avalue [in]
-
Tipo: numerico
Primo valore di addizione.
-
bvalue [in]
-
Tipo: numerico
Secondo valore di addizione.
Valore restituito
Tipo: numerico
Risultato di mvalue avalue * bvalue + .
Commenti
Modello minimo shader
Questa funzione è supportata nei modelli di shader seguenti.
Modello di shader | Supportato |
---|---|
Modello 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 |
Gli autori di shader possono usare l'instrinsic mad per indirizzare in modo esplicito l'istruzione hardware mad nell'output dello shader compilato, particolarmente utile con shader che contrassegnano i risultati con la parola chiave precisa . L'istruzione mad può essere implementata nell'hardware come "fuso", che offre una precisione maggiore rispetto all'implementazione di un'istruzione mul seguita da un'istruzione add , o come un mul + add add.
Se gli autori di shader usano l'instrinsic pazzo per calcolare un risultato che lo shader contrassegnato come preciso, indicano all'hardware di usare qualsiasi implementazione valida dell'istruzione mad (fuso o meno) purché l'implementazione sia coerente per tutti gli usi di tale intrinseco pazzo in qualsiasi shader su tale hardware. Gli shader possono quindi sfruttare i potenziali miglioramenti delle prestazioni usando un'istruzione mad nativa (rispetto a mul + add) in alcuni hardware. Il risultato dell'esecuzione di un'istruzione hardware pazza nativa potrebbe o meno essere diverso rispetto all'esecuzione di un mul seguito da un aggiunta. Tuttavia, indipendentemente dal risultato, il risultato deve essere coerente affinché la stessa operazione venga eseguita in più shader o in parti diverse di uno shader.
Vedi anche