ARB шейдерный бюллетень: нет связи между ложью и правдой? - PullRequest
0 голосов
/ 03 января 2019

Мне интересно, почему ballotARB(false) всегда возвращает 0 и не возвращает битовое поле, в котором установлены соответствующие биты для всех активных вызовов в подгруппе.

Из-за этого я не вижу, как я могу использовать функцию ballotARB в моей программе.

Мое понимание этой функции неверно?

1 Ответ

0 голосов
/ 03 января 2019

Что должно ballotARB(false) вернуть, если нет 0?

Возвращает количество true голосов в местной подгруппе. Поскольку все ваши вызовы голосуют false, несмотря ни на что, результат должен быть 0. Это даже явно указано в спецификации расширения ARB_shader_ballot:

Можно сделать следующие тривиальные предположения:

  • ballotARB(true) возвращает bitfield, где соответствующие биты установлены для всех активных вызовов в подгруппе.
  • ballotARB(false) возвращает ноль.

Таким образом, чтобы использовать голоса, вы должны использовать их для выражения, которое на самом деле не динамически однородно .

...