GL_ARB_vertex_program and GL_ARB_fragment_program do not allow reads from shader outputs, and many pieces of hardware (e.g., r300 and i915) don't allow this either. Because of that, Mesa and many drivers assume that there are no reads from shader outputs, and some drivers will assert otherwise.
See the _mesa_remove_output_reads() function.
Author: Marek Olšák <firstname.lastname@example.org>
Date: Mon Aug 16 01:53:30 2010 +0200
st/mesa: remove output register reads inside shaders
This is a GLSL2 regression fix.
(I don't think there are any other candidates for this: 965 is fine with it, and radeon developers claimed to be OK with it).