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

Siehe auch

Übersicht über Shadermodell 6

Shadermodell 6