Функция 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
См. также раздел