#version 150 core in vec4 iv4; uniform float ps; uniform int ui; invariant gl_Position; struct s1 { int a; int a2; vec4 b[3]; }; struct s2 { int c; s1 d[4]; }; out s2 s2out; void main() { gl_Position = iv4; gl_PointSize = ps; gl_ClipDistance[2] = iv4.x; int i; s2out.d[i].b[2].w = ps; // test recovery from nonsupported built-ins //float n1 = noise1(2.4); //n1 = noise1(vec4(n1)); //vec2 n2 = noise2(vec3(n1)); //vec3 n3 = noise3(n2); //vec4 n4 = noise4(n3); } out float gl_ClipDistance[4];