The function subgroupBallot() returns a set of bitfields containing the
result of evaluating the expression in all active invocations in the
subgroup.
So does this mean that at the point of execution right before subgroupBallot, we already have all the test result of all invocations in a subgroup, which means some invocations will wait others for the result?
Or the function only returns the bitfields at the time of execution without any implicit barrier so that some bits are newly updated while others are outdated?
As the spec says:
So does this mean that at the point of execution right before
subgroupBallot
, we already have all the test result of all invocations in a subgroup, which means some invocations will wait others for the result? Or the function only returns the bitfields at the time of execution without any implicit barrier so that some bits are newly updated while others are outdated?