Funzione WavePrefixSum
Restituisce la somma di tutti i valori nelle corsie attive con indici più piccoli di questo.
Sintassi
<type> WavePrefixSum(
<type> value
);
Parametri
value
Valore da sommare.
Valore restituito
Somma dei valori.
Commenti
L'ordine delle operazioni su questa routine non può essere garantito. Quindi, in effetti, il flag [preciso] viene ignorato all'interno di esso.
È possibile calcolare una somma suffisso aggiungendo la somma del prefisso al valore della corsia corrente.
Si noti che la corsia attiva con l'indice più basso riceverà sempre 0 per la somma del prefisso.
Questa funzione è supportata dal modello shader 6.0 in tutte le fasi dello shader.
Esempio
uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );
In una macchina con dimensioni d'onda pari a 8 e tutte le corsie attive ad eccezione delle corsie 0 e 4, i valori seguenti verranno restituiti da WavePrefixSum.
indice corsia | status | prefixSum |
---|---|---|
0 | inactive | n/d |
1 | active | = 0 |
2 | active | = 0+2 |
3 | active | = 0+2+2 |
4 | inactive | n/d |
5 | active | = 0+2+2+2 |
6 | active | = 0+2+2+2+2 |
7 | active | = 0+2+2+2+2+2 |