| #version 100 | |
| varying vec3 color; // ERRROR, there is no default qualifier for float | |
| lowp vec2 foo(mediump vec3 mv3) | |
| { | |
| highp vec4 hv4; | |
| return hv4.xy; | |
| } | |
| int global_medium; | |
| uniform lowp sampler2D samplerLow; | |
| uniform mediump sampler2D samplerMed; | |
| uniform highp sampler2D samplerHigh; | |
| precision highp int; | |
| precision highp ivec2; // ERROR | |
| precision mediump int[2]; // ERROR | |
| vec4 uint; // okay | |
| precision mediump vec4; // ERROR | |
| int global_high; | |
| void main() | |
| { | |
| lowp int sum = global_medium + global_high; | |
| gl_FragColor = vec4(color, 1.0); | |
| int level1_high; | |
| sum += level1_high; | |
| precision lowp int; | |
| int level1_low; | |
| sum += level1_low; | |
| // test maxing precisions of args to get precision of builtin | |
| lowp float arg1; | |
| mediump float arg2; | |
| lowp float d = distance(arg1, arg2); | |
| { | |
| int level2_low; | |
| sum += level2_low; | |
| precision highp int; | |
| int level2_high; | |
| sum += level2_high; | |
| do { | |
| if (true) { | |
| precision mediump int; | |
| int level4_medium; | |
| sum += level4_medium; | |
| } | |
| int level3_high; | |
| sum += level3_high; | |
| } while (true); | |
| int level2_high2; | |
| sum += level2_high2; | |
| } | |
| int level1_low3; | |
| sum += level1_low3; | |
| sum += 4 + ((ivec2(level1_low3) * ivec2(level1_high) + ivec2((/* comma operator */level1_low3, level1_high)))).x; | |
| texture2D(samplerLow, vec2(0.1, 0.2)); | |
| texture2D(samplerMed, vec2(0.1, 0.2)); | |
| texture2D(samplerHigh, vec2(0.1, 0.2)); | |
| } | |
| precision mediump bool; // ERROR | |
| //precision mediump struct { int a; } s; // ERROR | |
| struct s {int a;}; | |
| precision mediump s; // ERROR | |
| mediump bvec2 b2; // ERROR |