Move unspecified-precision tests from ES2/ES3 to ES3.1
Got significant pushback from vendors about enforcing these tests on
ES2/ES3 -- ends up being a vendor choice between breaking shipping
content or failing CTS.
Moved all of these tests to ES3.1 only as a compromise.
Change-Id: I5a827064472f73908b01fa85e0097bda21038136
Components: AOSP
(cherry picked from commit 047891af31d1c8827a84e49e81b5b526ee5ee485)
diff --git a/android/cts/master/gles2-master.txt b/android/cts/master/gles2-master.txt
index 876ac76..27e8062 100644
--- a/android/cts/master/gles2-master.txt
+++ b/android/cts/master/gles2-master.txt
@@ -1115,11 +1115,6 @@
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
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index 2f1dc0d..060f164 100644
--- a/android/cts/master/gles31-master.txt
+++ b/android/cts/master/gles31-master.txt
@@ -4372,6 +4372,37 @@
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.uniform_block_fragment
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_vertex
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_fragment
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.output_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_different_precision
diff --git a/android/cts/master/src/gles3-test-issues.txt b/android/cts/master/src/gles3-test-issues.txt
index 6ccbad7..9b1745e 100644
--- a/android/cts/master/src/gles3-test-issues.txt
+++ b/android/cts/master/src/gles3-test-issues.txt
@@ -172,6 +172,3 @@
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec3
-# Temporarily excluded: b/73070970
-dEQP-GLES3.functional.shaders.declarations.unspecified_precision.*
-
diff --git a/data/gles2/shaders/declarations.test b/data/gles2/shaders/declarations.test
index 80c513f..4dfb0a4 100644
--- a/data/gles2/shaders/declarations.test
+++ b/data/gles2/shaders/declarations.test
@@ -138,63 +138,3 @@
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
diff --git a/data/gles3/shaders/declarations.test b/data/gles3/shaders/declarations.test
index 22945c8..86f98d9 100644
--- a/data/gles3/shaders/declarations.test
+++ b/data/gles3/shaders/declarations.test
@@ -589,208 +589,3 @@
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
diff --git a/data/gles31/shaders/es31/declarations.test b/data/gles31/shaders/es31/declarations.test
new file mode 100644
index 0000000..e3eabfd
--- /dev/null
+++ b/data/gles31/shaders/es31/declarations.test
@@ -0,0 +1,204 @@
+group unspecified_precision "Invalid declarations with unspecified precision"
+
+ case float_partially_specified_fragment
+ version 310 es
+ expect compile_fail
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ void main() {}
+ ""
+ fragment ""
+ #version 310 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 310 es
+ expect compile_fail
+ vertex ""
+ #version 310 es
+ void main() {}
+ ""
+ fragment ""
+ #version 310 es
+ void main() { float v; }
+ ""
+ end
+
+ case vec2_fragment
+ version 310 es
+ expect compile_fail
+ vertex ""
+ #version 310 es
+ void main() {}
+ ""
+ fragment ""
+ #version 310 es
+ void main() { vec2 v; }
+ ""
+ end
+
+ case vec3_fragment
+ version 310 es
+ expect compile_fail
+ vertex ""
+ #version 310 es
+ void main() {}
+ ""
+ fragment ""
+ #version 310 es
+ void main() { vec3 v; }
+ ""
+ end
+
+ case vec4_fragment
+ version 310 es
+ expect compile_fail
+ vertex ""
+ #version 310 es
+ void main() {}
+ ""
+ fragment ""
+ #version 310 es
+ void main() { vec4 v; }
+ ""
+ end
+
+ case sampler3D
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform sampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case samplerCubeShadow
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform samplerCubeShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DShadow
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform sampler2DShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArray
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform sampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArrayShadow
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform sampler2DArrayShadow samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2D
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform isampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case isampler3D
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform isampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case isamplerCube
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform isamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2DArray
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform isampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2D
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform usampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case usampler3D
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform usampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case usamplerCube
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform usamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2DArray
+ version 310 es
+ expect compile_fail
+ both ""
+ #version 310 es
+ uniform usampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+end # unspecified_precision
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/gles31-master.txt
index 6f80537..13c5b67 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/gles31-master.txt
@@ -4398,6 +4398,37 @@
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.uniform_block_fragment
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_vertex
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_fragment
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.output_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_different_precision
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt
index 6fe77b7..6d6e76b 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt
@@ -1336,11 +1336,6 @@
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
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles3-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles3-master.txt
index 8f65fec..2020f33 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles3-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles3-master.txt
@@ -2841,37 +2841,6 @@
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_out_fragment
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_vertex
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_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
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
index 6cb15ff..ed1d2aa 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
@@ -4411,6 +4411,37 @@
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.uniform_block_fragment
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_vertex
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_fragment
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.output_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_different_precision
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt
index 787d278..da73d7a 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt
@@ -1365,11 +1365,6 @@
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.varying_in_fragment_main
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.invariant_attribute
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.invariant_uniform
-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
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles3-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles3-master.txt
index 0cfa9e6..a1990f6 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles3-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles3-master.txt
@@ -2843,37 +2843,6 @@
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_out_fragment
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_vertex
dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_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
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
index e4c9a81..d0985a0 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
@@ -4423,6 +4423,37 @@
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.uniform_block_fragment
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_vertex
dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.invalid.storage_block_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.float_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES31.functional.shaders.linkage.es31.declarations.unspecified_precision.usampler2DArray_fragment
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.output_type_mismatch
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.input_different_precision
diff --git a/modules/gles31/functional/es31fFunctionalTests.cpp b/modules/gles31/functional/es31fFunctionalTests.cpp
index e45291f..d2d6aa4 100644
--- a/modules/gles31/functional/es31fFunctionalTests.cpp
+++ b/modules/gles31/functional/es31fFunctionalTests.cpp
@@ -196,6 +196,7 @@
{
static const ShaderLibraryGroup::File s_filesES31[] =
{
+ { "shaders/es31/declarations.test", "declarations", "Declarations" },
{ "shaders/es31/linkage_geometry.test", "geometry", "Geometry shader" },
{ "shaders/es31/linkage_tessellation.test", "tessellation", "Tessellation shader" },
{ "shaders/es31/linkage_tessellation_geometry.test", "tessellation_geometry", "Tessellation and geometry shader" },