We have noticed that with high bloom (quality 5), there was a strange aliasing around the objects that the bloom would impact.
It turns out that this comes from the output of the motion blur pass, which produces a half-resolution buffer used by the bloom filter when quality is 5.
This half-res output is produced using wave intrinsics, and the code assumes that GetWaveLaneIndex() matches GroupThreadIndex (modulo GetWaveLaneCount()), which is not the case for a 2D workgroup.
Using the altenative path without wave operation fixes the issue, but is more expensive (and seems to be missing some memory barriers). Alternatively, using a 1D workgroup also fixes the issue, since it forces the Lane Index and Group Thread Index to match.
Any other suggestions, or concerns?
Thanks
[Attachment Removed]