#version 150 core

in vec4 iv4;

in float ps;
in int ui;
uniform sampler2D s2D;

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 non-implicit lod
    texture(s2D, vec2(0.5));
    textureProj(s2D, vec3(0.5));
    textureLod(s2D, vec2(0.5), 3.2);
}

out float gl_ClipDistance[4];