precision highp float; precision lowp int; struct MyStruct { float f; int i; }; uniform MyStruct s1; uniform float fh1; uniform highp float fh2; uniform mediump float fm; uniform int il1; uniform lowp int il2; uniform mediump int im; void main() { lowp float f = fh1 + fh2 + fm + s1.f; highp int i = il1 + il2 + im + s1.i; float z = 0.0; z += gl_FragCoord.x > 0.5 ? 0.9 : 0.1; gl_FragColor = vec4(f, i, z, 0.0); }