返回活动通道中索引小于此索引的所有值的总和。
语法
<type> WavePrefixSum(
<type> value
);
参数
value
要求和的值。
返回值
值的总和。
备注
无法保证此例程上的操作顺序。 因此,实际上,忽略其中[精确]标志。
可以通过将前缀和添加到当前通道的值来计算后缀总和。
请注意,索引最低的活动通道将始终收到前缀和的 0。
在所有着色器阶段中,着色器模型 6.0 都支持此函数。
示例
uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );
在波形大小为 8 且所有通道处于活动状态(通道 0 和 4 除外)的计算机上,将从 WavePrefixSum 返回以下值。
| 通道索引 | status | prefixSum |
|---|---|---|
| 0 | 非活跃 | 不适用 |
| 1 | 活动 | = 0 |
| 2 | 活动 | = 0+2 |
| 3 | 活动 | = 0+2+2 |
| 4 | 非活跃 | 不适用 |
| 5 | 活动 | = 0+2+2+2+2 |
| 6 | 活动 | = 0+2+2+2+2 |
| 7 | 活动 | = 0+2+2+2+2+2 |