Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the product of all of the values in the active lanes in this wave with indices less than this lane.
Syntax
<type> WavePrefixProduct(
<type> value
);
Parameters
value
The value to multiply.
Return value
The product of all the values.
Remarks
The order of operations on this routine cannot be guaranteed. So, effectively, the [precise] flag is ignored within it.
A postfix product can be computed by multiplying the prefix product by the current lane's value.
Note that the active lane with the lowest index will always receive a 1 for its prefix product.
This function is supported from shader model 6.0 in all shader stages.
Examples
uint numToMultiply = 2;
uint prefixProduct = WavePrefixProduct( numToMultiply );
On a machine with a wave size of 8, and all lanes active except lanes 0 and 4, the following values would be returned from WavePrefixProduct.
lane index | status | prefixProduct |
---|---|---|
0 | inactive | n/a |
1 | active | = 1 |
2 | active | = 1*2 |
3 | active | = 1*2*2 |
4 | inactive | n/a |
5 | active | = 1*2*2*2 |
6 | active | = 1*2*2*2*2 |
7 | active | = 1*2*2*2*2*2 |