Fonction WaveActiveBallot
Retourne un uint4 contenant un masque de bits de l’évaluation de l’expression booléenne pour toutes les voies actives dans la vague actuelle.
Syntaxe
uint4 WaveActiveBallot(
bool expr
);
Paramètres
-
expr
-
Expression booléenne à évaluer.
Valeur retournée
Uint4 contenant un masque de bits de l’évaluation de l’expression booléenne pour toutes les voies actives dans la vague actuelle. Le bit le moins significatif correspond à la voie avec l’index zéro. Les bits correspondant aux voies inactives seront zéro. Les bits qui sont supérieurs ou égaux à WaveGetLaneCount seront zéro.
Notes
Différents GPU ont des largeurs de processeur SIMD différentes (nombre de voies). La plupart de ces fonctions WaveXXX sont capables de fonctionner au niveau de l’abstraction où la largeur de la machine SIMD est masquée. Pour optimiser la portabilité du code entre les GPU, utilisez les intrinsèques qui ne reposent pas sur la largeur de l’ordinateur. Par exemple, utilisez :
uint result = WaveActiveCountBits( bBit );
À la place de :
uint result = countbits( WaveActiveBallot( bBit ) );
Cette fonction est prise en charge à partir du modèle de nuanceur 6.0 dans toutes les étapes du nuanceur.
Exemples
// get a bitwise representation of the number of currently active lanes:
uint4 waveBits = WaveActiveBallot( true ); // convert to bits
Voir aussi