glslang/Test/precision.frag
John Kessenich 69aa9c1b84 Fixes to scanning:
- do version checking for the line-continuation character
 - check for built-in names in #undef
 - bug fix for #elif after #else
 - do version checking for use of floating point suffixes (f, LF, etc.)


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24011 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-11-12 03:31:24 +00:00

77 lines
1.9 KiB
GLSL

#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