223e3727d5
This "tear" is similar to the original concept of loads/stores tearing, but across invocations in a wave instead of bytes. Qualcomm seems to have this problem, at least for some GPUs. This fixes spec@arb_shader_storage_buffer_object@execution@ssbo-atomiccompswap-int on a630 once we start relying on divergence analysis for computing reconvergence properties. For backends that have readFirstInvocation(), it should be possible to fix the problem by inserting readFirstInvocation() instead, but a5xx doesn't have it so we can't rely on it in freedreno. Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28573>