[require] GLSL >= 1.10 [vertex shader] uniform struct { vec3 f1; vec4 f2; float f3; } array[2]; varying vec4 color; void main() { gl_Position = gl_Vertex; color = array[0].f2; } [fragment shader] varying vec4 color; void main() { gl_FragColor = color; } [test] uniform vec4 array[0].f2 0.0 1.0 0.0 0.0 draw rect -1 -1 2 2 probe rgb 1 1 0.0 1.0 0.0