WaveActiveBallot 函数
返回一个 uint4,其中包含当前波中所有活动通道的布尔表达式计算的位掩码。
语法
uint4 WaveActiveBallot(
bool expr
);
参数
-
expr
-
要计算的布尔表达式。
返回值
一个 uint4,包含当前波中所有活动通道的布尔表达式计算的位掩码。 最小有效位对应于索引为零的通道。 与非活动通道对应的位将为零。 大于或等于 WaveGetLaneCount 的位将为零。
备注
不同的 GPU 具有不同的 SIMD 处理器宽度 (通道计数) 。 其中大多数 WaveXXX 函数能够在隐藏 SIMD 计算机宽度的抽象级别运行。 若要在 GPU 之间最大程度地提高代码的可移植性,请使用不依赖于计算机宽度的内部函数。 例如,使用:
uint result = WaveActiveCountBits( bBit );
不是:
uint result = countbits( WaveActiveBallot( bBit ) );
着色器模型 6.0 在所有着色器阶段都支持此函数。
示例
// get a bitwise representation of the number of currently active lanes:
uint4 waveBits = WaveActiveBallot( true ); // convert to bits
另请参阅