12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #version 310 es
- precision mediump float;
- in lowp float lowfin;
- in mediump float mediumfin;
- in highp vec4 highfin;
- highp int uniform_high;
- mediump int uniform_medium;
- lowp int uniform_low;
- bvec2 ub2;
- out mediump vec4 mediumfout;
- highp float global_highp;
- lowp vec2 foo(mediump vec3 mv3)
- {
- return highfin.xy;
- }
- bool boolfun(bvec2 bv2)
- {
- return bv2 == bvec2(false, true);
- }
- struct S {
- highp float a;
- lowp float b;
- };
- in S s;
- void main()
- {
- lowp int sum = uniform_medium + uniform_high;
- sum += uniform_high;
- sum += uniform_low;
-
- // test maxing precisions of args to get precision of builtin
- lowp float arg1 = 3.2;
- mediump float arg2 = 1023908.2;
- lowp float d = distance(lowfin, mediumfin);
- global_highp = length(highfin);
- highp vec4 local_highp = vec4(global_highp);
- mediumfout = vec4(sin(d)) + arg2 + local_highp;
- sum += 4 + ((ivec2(uniform_low) * ivec2(uniform_high) + ivec2((/* comma operator */uniform_low, uniform_high)))).x;
- mediumfout += vec4(sum);
- if (boolfun(ub2))
- ++mediumfout;
-
- mediumfout *= s.a;
- mediumfout *= s.b;
- }
|