You’re leaving an element of gl_FragData[] uninitialized in the A and B cases, which isn’t a good idea. Since you have additive blending enabled, just initialize the unused gl_FragData[] element with zero.
I recall Apple’s GL2 driver not liking it much if you don’t write to a buffer that is enabled for writing.
I recall Apple’s GL2 driver not liking it much if you don’t write to a buffer that is enabled for writing.
I had this problem on either nVidia or AMD at some point. Now I am just careful to only enable the buffers I intend to write to. I don’t know what the spec say.