[require] GLSL >= 4.50 [fragment shader] #version 430 uniform float x[8]; in float data[8]; out vec4 c; void main() { int i = 0; bool after_first = false; float t = 3.14; while (true) { if (after_first) i++; after_first = true; if (i > 8) break; t += data[i] * x[i]; } c = vec4(t); } [vertex shader] #version 450 in vec4 a; in vec4 b; in vec4 piglit_vertex; out float data[8]; void main() { gl_Position = piglit_vertex; data[0] = a.x; data[1] = a.y; data[2] = a.z; data[3] = a.w; data[4] = b.x; data[5] = b.y; data[6] = b.z; data[7] = b.w; }