WaveActiveBallot 関数
現在のウェーブ内のすべてのアクティブなレーンのブール式の評価のビットマスクを含む uint4 を返します。
構文
uint4 WaveActiveBallot(
bool expr
);
パラメーター
-
expr
-
評価するブール式。
戻り値
現在のウェーブ内のすべてのアクティブなレーンのブール式の評価のビットマスクを含む uint4。 最下位ビットは、インデックスが 0 のレーンに対応します。 非アクティブなレーンに対応するビットは 0 になります。 WaveGetLaneCount 以上のビットは 0 になります。
注釈
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
関連項目