moved away from ivec4's in the shader, which aren't always compatible with GLSL 1.2