次の方法で共有


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 

関連項目

シェーダー モデル 6 の概要

シェーダー モデル 6