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

Vedi anche

Panoramica del modello shader 6

Modello shader 6