blob: 42c5b357f2fc1abe7e032243bb94c497ad2a2420 [file] [log] [blame]
# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
# modify the generating script file. Otherwise changes will be lost!
group variables "Order of qualification in variable declarations."
group valid "Valid orderings."
case invariant_interp_storage_precision
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant smooth centroid out lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_precision
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_interp_storage
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant smooth centroid out float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_precision
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out lowp float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage
expect pass
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out float x0;
out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in float x0;
in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
end # valid
group invalid "Invalid orderings."
case invariant_interp_precision_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant smooth lowp centroid out float x0;
flat mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth lowp centroid in float x0;
flat mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_interp_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out smooth lowp float x0;
out flat mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth lowp float x0;
in flat mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_precision_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out lowp smooth float x0;
out mediump flat float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp smooth float x0;
in mediump flat float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_precision_interp_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant lowp smooth centroid out float x0;
mediump flat out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp smooth centroid in float x0;
mediump flat in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_precision_storage_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant lowp centroid out smooth float x0;
mediump out flat float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in smooth float x0;
mediump in flat float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_invariant_storage_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth invariant centroid out lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_invariant_precision_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth invariant lowp centroid out float x0;
flat mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth lowp centroid in float x0;
flat mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_invariant_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out invariant lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_precision_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out lowp invariant float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_precision_invariant_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth lowp invariant centroid out float x0;
flat mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth lowp centroid in float x0;
flat mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_precision_storage_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth lowp centroid out invariant float x0;
flat mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth lowp centroid in float x0;
flat mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_invariant_interp_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out invariant smooth lowp float x0;
out flat mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth lowp float x0;
in flat mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_invariant_precision_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out invariant lowp smooth float x0;
out mediump flat float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp smooth float x0;
in mediump flat float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_interp_invariant_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out smooth invariant lowp float x0;
out flat mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth lowp float x0;
in flat mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_interp_precision_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out smooth lowp invariant float x0;
out flat mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth lowp float x0;
in flat mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision_invariant_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp invariant smooth float x0;
out mediump flat float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp smooth float x0;
in mediump flat float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision_interp_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp smooth invariant float x0;
out mediump flat float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp smooth float x0;
in mediump flat float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_invariant_interp_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp invariant smooth centroid out float x0;
mediump flat out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp smooth centroid in float x0;
mediump flat in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_invariant_storage_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp invariant centroid out smooth float x0;
mediump out flat float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in smooth float x0;
mediump in flat float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_interp_invariant_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp smooth invariant centroid out float x0;
mediump flat out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp smooth centroid in float x0;
mediump flat in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_interp_storage_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp smooth centroid out invariant float x0;
mediump flat out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp smooth centroid in float x0;
mediump flat in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_storage_invariant_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp centroid out invariant smooth float x0;
mediump out flat float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in smooth float x0;
mediump in flat float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_storage_interp_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp centroid out smooth invariant float x0;
mediump out flat float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in smooth float x0;
mediump in flat float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_precision_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth lowp centroid out float x0;
flat mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth lowp centroid in float x0;
flat mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_interp_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out smooth lowp float x0;
out flat mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth lowp float x0;
in flat mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp smooth float x0;
out mediump flat float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp smooth float x0;
in mediump flat float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_interp_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp smooth centroid out float x0;
mediump flat out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp smooth centroid in float x0;
mediump flat in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_storage_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp centroid out smooth float x0;
mediump out flat float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in smooth float x0;
mediump in flat float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out smooth float x0;
out flat float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth float x0;
in flat float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_invariant_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth invariant centroid out float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out invariant float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_invariant_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out invariant smooth float x0;
out flat float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth float x0;
in flat float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_interp_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out smooth invariant float x0;
out flat float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth float x0;
in flat float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_precision_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant lowp centroid out float x0;
mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in float x0;
mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_invariant_precision
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out invariant lowp float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp invariant float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_invariant_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp invariant centroid out float x0;
mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in float x0;
mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_storage_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp centroid out invariant float x0;
mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in float x0;
mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case precision_storage
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
lowp centroid out float x0;
mediump out float x1;
highp uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
lowp centroid in float x0;
mediump in float x1;
highp uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_interp
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out smooth float x0;
out flat float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in smooth float x0;
in flat float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_invariant
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out invariant float x0;
out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
centroid in float x0;
in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_interp_storage_precision_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant smooth centroid out lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_precision_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out lowp float x0;
flat out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant smooth centroid in lowp float x0;
flat in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_interp_storage_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant smooth centroid out float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_precision_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out lowp float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case storage_precision_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
centroid out lowp float x0;
out mediump float x1;
uniform highp float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant centroid in lowp float x0;
in mediump float x1;
uniform highp float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case interp_storage_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
smooth centroid out float x0;
flat out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant smooth centroid in float x0;
flat in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
case invariant_storage_invariant_input
expect compile_fail
values {}
vertex ""
#version 300 es
precision mediump float;
in highp vec4 dEQP_Position;
invariant centroid out float x0;
out float x1;
uniform float x2;
void main()
{
x0 = 1.0;
x1 = 2.0;
gl_Position = dEQP_Position;
}
""
fragment ""
#version 300 es
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
invariant centroid in float x0;
in float x1;
uniform float x2;
void main()
{
float result = (x0 + x1 + x2) / 3.0;
dEQP_FragColor = vec4(result, result, result, 1.0);
}
""
end
end # invalid
end # variables
group parameters "Order of qualification in function parameters."
group valid "Valid orderings."
case storage_parameter_precision
expect pass
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (const in lowp float x)
{
return x + 1.0;
}
void foo1 ( out mediump float x)
{
x = 1.0;
}
float foo2 ( inout highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case storage_parameter
expect pass
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (const in float x)
{
return x + 1.0;
}
void foo1 ( out float x)
{
x = 1.0;
}
float foo2 ( inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case storage_precision
expect pass
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (const lowp float x)
{
return x + 1.0;
}
void foo1 ( mediump float x)
{
x = 1.0;
}
float foo2 ( highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case parameter_precision
expect pass
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (in lowp float x)
{
return x + 1.0;
}
void foo1 (out mediump float x)
{
x = 1.0;
}
float foo2 (inout highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
end # valid
group invalid "Invalid orderings."
case storage_precision_parameter
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (const lowp in float x)
{
return x + 1.0;
}
void foo1 ( mediump out float x)
{
x = 1.0;
}
float foo2 ( highp inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case parameter_storage_precision
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (in const lowp float x)
{
return x + 1.0;
}
void foo1 (out mediump float x)
{
x = 1.0;
}
float foo2 (inout highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case parameter_precision_storage
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (in lowp const float x)
{
return x + 1.0;
}
void foo1 (out mediump float x)
{
x = 1.0;
}
float foo2 (inout highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case precision_storage_parameter
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (lowp const in float x)
{
return x + 1.0;
}
void foo1 (mediump out float x)
{
x = 1.0;
}
float foo2 (highp inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case precision_parameter_storage
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (lowp in const float x)
{
return x + 1.0;
}
void foo1 (mediump out float x)
{
x = 1.0;
}
float foo2 (highp inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case parameter_storage
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (in const float x)
{
return x + 1.0;
}
void foo1 (out float x)
{
x = 1.0;
}
float foo2 (inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case precision_storage
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (lowp const float x)
{
return x + 1.0;
}
void foo1 (mediump float x)
{
x = 1.0;
}
float foo2 (highp float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
case precision_parameter
expect compile_fail
version 300 es
values {}
both ""
#version 300 es
precision mediump float;
${DECLARATIONS}
float foo0 (lowp in float x)
{
return x + 1.0;
}
void foo1 (mediump out float x)
{
x = 1.0;
}
float foo2 (highp inout float x)
{
return x + 1.0;
}
void main()
{
${SETUP}
float result;
foo1(result);
float x0 = foo0(1.0);
foo2(result);
${OUTPUT}
}
""
end
end # invalid
end # parameters