Поделиться через


Функция 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