am 7cbc13c0: Add GLSL ES 3.0 tests for default uniform precision mismatch
* commit '7cbc13c0d0410af3031a3c13353bbf6456c8be04':
Add GLSL ES 3.0 tests for default uniform precision mismatch
diff --git a/android/cts/master/com.drawelements.deqp.gles3.xml b/android/cts/master/com.drawelements.deqp.gles3.xml
index 3d5b377..28dd3d7 100644
--- a/android/cts/master/com.drawelements.deqp.gles3.xml
+++ b/android/cts/master/com.drawelements.deqp.gles3.xml
@@ -4999,6 +4999,20 @@
</TestCase>
</TestSuite>
<TestSuite name="uniform">
+ <TestCase name="basic">
+ <Test name="precision_conflict_1">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
<TestCase name="struct">
<Test name="basic">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index a60a966..349a846 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -1543,6 +1543,10 @@
dEQP-GLES3.functional.shaders.linkage.varying.interpolation.flat
dEQP-GLES3.functional.shaders.linkage.varying.usage.readback_1
dEQP-GLES3.functional.shaders.linkage.varying.usage.writeback_1
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_1
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_2
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_3
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_4
dEQP-GLES3.functional.shaders.linkage.uniform.struct.basic
dEQP-GLES3.functional.shaders.linkage.uniform.struct.vertex_only
dEQP-GLES3.functional.shaders.linkage.uniform.struct.fragment_only
diff --git a/data/gles3/shaders/linkage.test b/data/gles3/shaders/linkage.test
index 7e4b3d8..56acda6 100644
--- a/data/gles3/shaders/linkage.test
+++ b/data/gles3/shaders/linkage.test
@@ -2342,6 +2342,125 @@
end
group uniform "Uniform linkage"
+ group basic "Default block uniforms of scalar and vector types"
+ case precision_conflict_1
+ version 300 es
+ desc "Vertex side uniform has highp, fragment side uniform mediump."
+ expect link_fail
+ values {output float out0 = 3.0;}
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ uniform highp float u_val;
+ out mediump float res;
+ void main()
+ {
+ res = u_val;
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 300 es
+ precision mediump float;
+ uniform float u_val;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float res;
+ void main()
+ {
+ out0 = u_val + res;
+ ${FRAGMENT_OUTPUT}
+ }
+ ""
+ end
+ case precision_conflict_2
+ version 300 es
+ desc "Vertex side uniform has highp, fragment side uniform mediump."
+ expect link_fail
+ values {output float out0 = 3.0;}
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ uniform highp float u_val;
+ out mediump float res;
+ void main()
+ {
+ res = u_val;
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 300 es
+ precision highp float;
+ uniform mediump float u_val;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float res;
+ void main()
+ {
+ out0 = u_val + res;
+ ${FRAGMENT_OUTPUT}
+ }
+ ""
+ end
+ case precision_conflict_3
+ version 300 es
+ desc "Vertex side uniform has lowp, fragment side uniform highp."
+ expect link_fail
+ values {output float out0 = 3.0;}
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ uniform lowp int u_val;
+ out mediump float res;
+ void main()
+ {
+ res = float(u_val);
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 300 es
+ precision highp float;
+ uniform highp int u_val;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float res;
+ void main()
+ {
+ out0 = float(u_val) + res;
+ ${FRAGMENT_OUTPUT}
+ }
+ ""
+ end
+ case precision_conflict_4
+ version 300 es
+ desc "Vertex side uniform has lowp, fragment side uniform mediump."
+ expect link_fail
+ values {output float out0 = 3.0;}
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ uniform lowp vec3 u_val;
+ out mediump float res;
+ void main()
+ {
+ res = u_val.y;
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 300 es
+ precision highp float;
+ uniform mediump vec3 u_val;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float res;
+ void main()
+ {
+ out0 = u_val.z + res;
+ ${FRAGMENT_OUTPUT}
+ }
+ ""
+ end
+ end
+
group struct "Uniform structs"
# Struct linkage handling
case basic