dEQP-GLES2.functional.shaders.declarations.invalid_declarations.uniform_in_fragment_main
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.varying_in_vertex_main
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.varying_in_fragment_main
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.float_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec4_fragment
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_vertex
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_fragment
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_xx_vertex
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_array_without_instance_name_2_fragment
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_vertex
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.float_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2DArray_fragment
dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_vertex
dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_fragment
dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_xx_vertex
end
end # invalid_declarations
+
+group unspecified_precision "Invalid declarations with unspecified precision"
+
+ case float_partially_specified_fragment
+ expect compile_fail
+ vertex ""
+ ${VERTEX_DECLARATIONS}
+ void main() {}
+ ""
+ fragment ""
+ // no global precision qualifier (e.g. precision mediump float)
+ void main() {
+ mediump float x = 1.0;
+ vec3 y = vec3(x);
+ mediump vec4 z = vec4(y, x);
+ }
+ ""
+ end
+
+ case float_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { float v; }
+ ""
+ end
+
+ case vec2_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec2 v; }
+ ""
+ end
+
+ case vec3_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec3 v; }
+ ""
+ end
+
+ case vec4_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec4 v; }
+ ""
+ end
+
+end # unspecified_precision
end
end # invalid_declarations
+
+group unspecified_precision "Invalid declarations with unspecified precision"
+
+ case float_partially_specified_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ // no global precision qualifier (e.g. precision mediump float)
+ void main() {
+ mediump float x = 1.0;
+ vec3 y = vec3(x);
+ mediump vec4 z = vec4(y, x);
+ }
+ ""
+ end
+
+ case float_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { float v; }
+ ""
+ end
+
+ case vec2_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec2 v; }
+ ""
+ end
+
+ case vec3_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec3 v; }
+ ""
+ end
+
+ case vec4_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec4 v; }
+ ""
+ end
+
+ case sampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case samplerCubeShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform samplerCubeShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArrayShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DArrayShadow samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case isampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case isamplerCube
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case usampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case usamplerCube
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+end # unspecified_precision