ARB 着色器选票:真假之间不一致?

ARB shader ballot : not coherent between false and true?

我想知道为什么 ballotARB(false) return 总是 0 而不是 return 为子组中所有活动调用设置相应位的位域。

因此,我看不出如何在我的程序中使用 ballotARB 功能。

我对这个函数的理解是错误的吗?

什么应该 ballotARB(false) return,如果不0

它 return 计算本地子组中的 true 票数。由于无论如何您的所有调用都投票 false,因此结果 必须 0。这甚至在 ARB_shader_ballot 扩展规范中明确说明:

The following trivial assumptions can be made:

  • ballotARB(true) returns bitfield where the corresponding bits are set for all active invocations in the sub-group.
  • ballotARB(false) returns zero.

因此,要利用选票,您应该将其用于实际上动态不统一.

的实验