WavePrefixProduct-Funktion
Gibt das Produkt aller Werte in den aktiven Lanes in dieser Welle mit Indizes zurück, die kleiner als dieser Lane sind.
Syntax
<type> WavePrefixProduct(
<type> value
);
Parameter
value
Der zu multiplizierende Wert.
Rückgabewert
Das Produkt aller Werte.
Bemerkungen
Die Reihenfolge der Vorgänge für diese Routine kann nicht garantiert werden. Das [präzise] Flag wird also darin ignoriert.
Ein Postfixprodukt kann berechnet werden, indem das Präfixprodukt mit dem Wert der aktuellen Lane multipliziert wird.
Beachten Sie, dass die aktive Lane mit dem niedrigsten Index immer eine 1 für ihr Präfixprodukt erhält.
Diese Funktion wird vom Shadermodell 6.0 in allen Shaderphasen unterstützt.
Beispiele
uint numToMultiply = 2;
uint prefixProduct = WavePrefixProduct( numToMultiply );
Auf einer Maschine mit einer Wellengröße von 8 und allen aktiven Lanes außer den Lanes 0 und 4 würden die folgenden Werte von WavePrefixProduct zurückgegeben.
Lane-Index | status | prefixProduct |
---|---|---|
0 | inactive | – |
1 | aktiv | = 1 |
2 | aktiv | = 1*2 |
3 | aktiv | = 1*2*2 |
4 | inactive | – |
5 | aktiv | = 1*2*2*2 |
6 | aktiv | = 1*2*2*2*2 |
7 | aktiv | = 1*2*2*2*2*2*2 |