The issue was introduced by a fix for T44713 which only made GLSL
consistent with Cycles.
Now we do have conditional averaging or proper luma weighting based
on whether we're new old old shading system. Not totally ideal but
should work for until we re-design viewport possibly breaking how
Blender Internal does implicit conversion.
Beside the obvious ARB -> GLSL change, the texture slicing algorithm had
to be rewritten.
Although this new algorithm has the same behaviour as the old one (view
aligned slicing), it works with an arbitrary number of slices (which
could eventually be set by the user), which means we can preallocate the
buffer. The previous algorithm would slice from the begining to the end
of the volume's bbox, and draw the slices as it generates them.
Also support for ARB program was removed.
Patch by myself, with some minor fixes by Brecht.
Reviewers: brecht, #opengl_gfx
Differential Revision: https://developer.blender.org/D1694