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 

另请参阅

着色器模型 6 概述

着色器型号 6