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

Siehe auch

Übersicht über Shadermodell 6

Shadermodell 6