WavePrefixProduct-Funktion
Gibt das Produkt aller Werte in den aktiven Lanes in dieser Welle mit Indizes zurück, die kleiner als diese Spur sind.
Syntax
<type> WavePrefixProduct(
<type> value
);
Parameter
value
Der zu multiplizierende Wert.
Rückgabewert
Das Produkt aller Werte.
Hinweise
Die Reihenfolge der Vorgänge für diese Routine kann nicht garantiert werden. Das genaue Flag wird also [ ] ignoriert.
Ein Postfixprodukt kann berechnet werden, indem das Präfixprodukt mit dem Wert der aktuellen Lane multipliziert wird.
Beachten Sie, dass die aktive Spur mit dem niedrigsten Index immer eine 1 für ihr Präfixprodukt erhält.
Diese Funktion wird von Shadermodell 6.0 in allen Shaderstufen unterstützt.
Beispiele
uint numToMultiply = 2;
uint prefixProduct = WavePrefixProduct( numToMultiply );
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 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 |