WavePrefixSum-Funktion
Gibt die Summe aller Werte in den aktiven Lanes mit kleineren Indizes als dieser zurück.
Syntax
<type> WavePrefixSum(
<type> value
);
Parameter
value
Der wert, der summiert werden soll.
Rückgabewert
Die Summe der Werte.
Hinweise
Die Reihenfolge der Vorgänge für diese Routine kann nicht garantiert werden. Das genaue Flag wird also [ ] ignoriert.
Eine Postfixsumme kann berechnet werden, indem dem Wert der aktuellen Spur die Präfixsumme hinzugefügt wird.
Beachten Sie, dass die aktive Spur mit dem niedrigsten Index immer 0 für ihre Präfixsumme erhält.
Diese Funktion wird von Shadermodell 6.0 in allen Shaderstufen unterstützt.
Beispiele
uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );
Auf einem Computer mit einer Wellengröße von 8 und allen aktiven Lanes außer den Lanes 0 und 4 werden die folgenden Werte von WavePrefixSum zurückgegeben.
| Lane-Index | status | prefixSum |
|---|---|---|
| 0 | inactive | – |
| 1 | aktiv | = 0 |
| 2 | aktiv | = 0+2 |
| 3 | aktiv | = 0+2+2 |
| 4 | inactive | – |
| 5 | aktiv | = 0+2+2+2 |
| 6 | aktiv | = 0+2+2+2+2+2 |
| 7 | aktiv | = 0+2+2+2+2+2+2 |