layout(binding=0, rgba32f) uniform image2DRect data;
Should supposedly work better like this:
layout(location=0, rgba32f) uniform image2DRect data;
But yes, glMemoryBarrier doesn't quite seem to work. I tried substituting glMemoryBarrier for glFinish and it worked for me.
I still have the same problem, not fixed in the newest Catalyst 14.6 beta drivers.