The new version only copies the required data, not more. Also, it avoids reading beyond buffer boundaries for the even-odd-row input mode.
Instead, only allow to toggle the swap_eyes flag, which is enough to allow Equalizer to choose between left and right view.
This time the workaround is for the NVIDIA 256.* series on Linux. The GLSL compiler failed on the original version of the code. A variant of the code with the three local variables sr, sg, sb but an inlined computation compiled successfully, but resulted in wrong colors, probably due to invalid optimizations.
This can be activated by setting the environment variable SRGB_TEXTURES_ARE_BROKEN. Note that color interpolation will be wrong in this case, but at least it works.
Now the color handling and the rendering are done in two distinct steps, and invlaid interpolations in non-linear color spaces are avoided. See the overview comment in video_output_opengl.cpp.