Merge "Add tests for EGL_EXT_buffer_age"
diff --git a/Android.mk b/Android.mk
index ef3ee8a..638ecf2 100644
--- a/Android.mk
+++ b/Android.mk
@@ -76,6 +76,7 @@
framework/delibs/debase/deInt32.c \
framework/delibs/debase/deInt32Test.c \
framework/delibs/debase/deMath.c \
+ framework/delibs/debase/deMathTest.c \
framework/delibs/debase/deMemory.c \
framework/delibs/debase/deRandom.c \
framework/delibs/debase/deString.c \
@@ -713,7 +714,9 @@
-DDEQP_TARGET_NAME=\"android\" \
-DDEQP_GLES3_RUNTIME_LOAD=1 \
-DDEQP_GLES2_RUNTIME_LOAD=1 \
- -DQP_SUPPORT_PNG=1
+ -DQP_SUPPORT_PNG=1 \
+ -Wconversion \
+ -Wno-sign-conversion
LOCAL_SHARED_LIBRARIES := \
libEGL \
diff --git a/android/cts/master/com.drawelements.deqp.gles3.xml b/android/cts/master/com.drawelements.deqp.gles3.xml
index e0ecc54..d2a015a 100644
--- a/android/cts/master/com.drawelements.deqp.gles3.xml
+++ b/android/cts/master/com.drawelements.deqp.gles3.xml
@@ -3181,12 +3181,6 @@
<Test name="line_1_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="line_2_vertex">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="line_2_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="file_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -3773,18 +3767,6 @@
<Test name="pragma_macro_exp_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="invalid_pragma_invalid_debug_vertex">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="invalid_pragma_invalid_debug_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="invalid_pragma_invalid_token_vertex">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="invalid_pragma_invalid_token_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
</TestCase>
<TestCase name="extensions">
<Test name="basic_vertex">
@@ -5017,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"/>
@@ -47479,24 +47475,12 @@
<Test name="sampler3d_fixed_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="sampler3d_fixed_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="sampler3d_float_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="sampler3d_float_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="isampler3d_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="usampler3d_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="usampler3d_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="sampler3d_bias_fixed_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -47714,27 +47698,15 @@
<Test name="sampler3d_fixed_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="sampler3d_fixed_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="sampler3d_float_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="sampler3d_float_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="isampler3d_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="isampler3d_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="usampler3d_vertex">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="usampler3d_fragment">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="sampler3d_bias_fixed_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -49674,106 +49646,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa2">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -49939,56 +49811,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -50155,56 +49977,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -51296,106 +51068,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa2">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -51561,56 +51233,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -51777,56 +51399,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -52918,90 +52490,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa2">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -53167,48 +52655,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -53375,48 +52821,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="fbo_msaa4">
- <Test name="float_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_mediump">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4_highp">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="fbo_float">
<Test name="float_lowp">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -56021,62 +55425,6 @@
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="mediump_vertex">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="mediump_fragment">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="highp_vertex">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="highp_fragment">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
</TestSuite>
<TestSuite name="atan">
<TestCase name="highp_vertex">
@@ -66215,9 +65563,6 @@
<Test name="54">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="56">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="57">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -68124,9 +67469,6 @@
<Test name="256x256_l8_mipmap">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="256x256_rgba4444">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="256x256_rgba4444_mipmap">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -68148,9 +67490,6 @@
<Test name="512x512_l8_mipmap">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="512x512_rgba4444">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="512x512_rgba4444_mipmap">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -120944,9 +120283,6 @@
<Test name="22">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="23">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="24">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
@@ -125602,33 +124938,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
<TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="lines_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="line_strip_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="line_loop_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
</TestCase>
<TestCase name="projected">
<Test name="triangles">
@@ -125673,33 +124982,6 @@
<TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
<TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="lines_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="line_strip_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="line_loop_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgb565d0s0ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
</TestCase>
</TestSuite>
<TestCase name="flatshading">
@@ -125807,13 +125089,6 @@
<TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
<TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
</Test>
- <Test name="lines_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- </Test>
</TestCase>
</TestSuite>
<TestSuite name="rbo_singlesample">
@@ -125867,13 +125142,6 @@
<TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
<TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
</Test>
- <Test name="lines_wide">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- </Test>
</TestCase>
</TestSuite>
<TestSuite name="rbo_multisample_4">
@@ -141145,9 +140413,6 @@
<Test name="flush">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="flush_wait">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
<Test name="finish">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
diff --git a/android/cts/master/com.drawelements.deqp.gles31.xml b/android/cts/master/com.drawelements.deqp.gles31.xml
index 676ac21..cdee7ea 100644
--- a/android/cts/master/com.drawelements.deqp.gles31.xml
+++ b/android/cts/master/com.drawelements.deqp.gles31.xml
@@ -6920,34 +6920,6 @@
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
- <TestCase name="mediump_compute">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="highp_compute">
- <Test name="scalar">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec3">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
</TestSuite>
<TestSuite name="atan">
<TestCase name="lowp_compute">
@@ -8419,9 +8391,6 @@
<Test name="vec3">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
- <Test name="vec4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
</TestCase>
</TestSuite>
<TestSuite name="refract">
@@ -10192,98 +10161,6 @@
</TestCase>
</TestSuite>
<TestSuite name="interpolate_at_centroid">
- <TestCase name="consistency">
- <Test name="default_framebuffer">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="singlesample_texture">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_1">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_8">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_16">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="singlesample_rbo">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_1">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_8">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_16">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
- <TestCase name="array_element">
- <Test name="default_framebuffer">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="singlesample_texture">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_1">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_8">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_texture_16">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="singlesample_rbo">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_1">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_2">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_4">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_8">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="multisample_rbo_16">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- </Test>
- </TestCase>
<TestCase name="negative">
<Test name="vec4_identity_swizzle">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -13088,645 +12965,218 @@
<TestCase name="value">
<Test name="triangles">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_4_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_4_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_4_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_4_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_4_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_8_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_8_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_8_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_8_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_8_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_max_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_max_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_max_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_max_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_max_samples">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
<TestCase name="derivate">
<Test name="triangles_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_lines_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_4_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_4_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_4_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_4_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_4_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_4_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_4_samples_dfdx">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_4_samples_dfdy">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_4_samples_fwidth">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_4_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_4_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_4_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_4_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_4_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_4_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_8_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_8_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_8_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_8_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_8_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_8_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_8_samples_dfdx">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_8_samples_dfdy">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_8_samples_fwidth">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_8_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_8_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_8_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_8_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_8_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_8_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_max_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_max_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="triangles_max_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_max_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_max_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_max_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_max_samples_dfdx">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_max_samples_dfdy">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
- </Test>
- <Test name="wide_lines_max_samples_fwidth">
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_max_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_max_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="points_max_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_max_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_max_samples_dfdy">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="wide_points_max_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="0" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="90" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="180" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms0" rotation="270" surfacetype="window"/>
- <TestInstance glconfig="rgba8888d24s8ms4" rotation="unspecified" surfacetype="window"/>
</Test>
</TestCase>
</TestSuite>
@@ -103996,6 +103446,11 @@
</TestCase>
</TestSuite>
</TestSuite>
+ <TestCase name="default_vertex_array_object">
+ <Test name="vertex_attrib_divisor">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
</TestSuite>
</TestSuite>
</TestPackage>
diff --git a/android/cts/master/gles3-565-no-depth-no-stencil.txt b/android/cts/master/gles3-565-no-depth-no-stencil.txt
index 63126dc..a4bd533 100644
--- a/android/cts/master/gles3-565-no-depth-no-stencil.txt
+++ b/android/cts/master/gles3-565-no-depth-no-stencil.txt
@@ -3206,18 +3206,12 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.triangles
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_fan
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_points
dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_lines
dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_line_strip
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index dfce400..e6e9e47 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -951,8 +951,6 @@
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.gl_es_2_fragment
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_1_vertex
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_1_fragment
-dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_2_vertex
-dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_2_fragment
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.file_vertex
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.file_fragment
dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.if_gl_es_vertex
@@ -1143,10 +1141,6 @@
dEQP-GLES3.functional.shaders.preprocessor.pragmas.pragma_fragment
dEQP-GLES3.functional.shaders.preprocessor.pragmas.pragma_macro_exp_vertex
dEQP-GLES3.functional.shaders.preprocessor.pragmas.pragma_macro_exp_fragment
-dEQP-GLES3.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_debug_vertex
-dEQP-GLES3.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_debug_fragment
-dEQP-GLES3.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_token_vertex
-dEQP-GLES3.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_token_fragment
dEQP-GLES3.functional.shaders.preprocessor.extensions.basic_vertex
dEQP-GLES3.functional.shaders.preprocessor.extensions.basic_fragment
dEQP-GLES3.functional.shaders.preprocessor.extensions.macro_exp_vertex
@@ -1549,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
@@ -15513,12 +15511,8 @@
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.isampler2darray_bias_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.usampler2darray_bias_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_fixed_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_fixed_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_float_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_float_fragment
-dEQP-GLES3.functional.shaders.texture_functions.textureoffset.isampler3d_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.usampler3d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureoffset.usampler3d_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_bias_fixed_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_bias_float_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureoffset.isampler3d_bias_fragment
@@ -15590,13 +15584,9 @@
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler2d_vec4_bias_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.usampler2d_vec4_bias_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_fixed_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_fixed_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_float_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_float_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler3d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler3d_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.usampler3d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.usampler3d_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_bias_fixed_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_bias_float_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler3d_bias_fragment
@@ -16094,18 +16084,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -16126,12 +16104,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -16152,12 +16124,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -16290,18 +16256,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -16322,12 +16276,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -16348,12 +16296,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -16486,16 +16428,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -16516,11 +16448,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -16541,11 +16468,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -17258,22 +17180,6 @@
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.scalar
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.vec3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.vec4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.scalar
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.vec3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.vec4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.scalar
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.scalar
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.vec3
@@ -20440,7 +20346,6 @@
dEQP-GLES3.functional.shaders.random.all_features.fragment.51
dEQP-GLES3.functional.shaders.random.all_features.fragment.52
dEQP-GLES3.functional.shaders.random.all_features.fragment.54
-dEQP-GLES3.functional.shaders.random.all_features.fragment.56
dEQP-GLES3.functional.shaders.random.all_features.fragment.57
dEQP-GLES3.functional.shaders.random.all_features.fragment.58
dEQP-GLES3.functional.shaders.random.all_features.fragment.59
@@ -21068,7 +20973,6 @@
dEQP-GLES3.functional.texture.size.cube.128x128_rgba8888_mipmap
dEQP-GLES3.functional.texture.size.cube.256x256_l8
dEQP-GLES3.functional.texture.size.cube.256x256_l8_mipmap
-dEQP-GLES3.functional.texture.size.cube.256x256_rgba4444
dEQP-GLES3.functional.texture.size.cube.256x256_rgba4444_mipmap
dEQP-GLES3.functional.texture.size.cube.256x256_rgb888
dEQP-GLES3.functional.texture.size.cube.256x256_rgb888_mipmap
@@ -21076,7 +20980,6 @@
dEQP-GLES3.functional.texture.size.cube.256x256_rgba8888_mipmap
dEQP-GLES3.functional.texture.size.cube.512x512_l8
dEQP-GLES3.functional.texture.size.cube.512x512_l8_mipmap
-dEQP-GLES3.functional.texture.size.cube.512x512_rgba4444
dEQP-GLES3.functional.texture.size.cube.512x512_rgba4444_mipmap
dEQP-GLES3.functional.texture.size.cube.512x512_rgb888
dEQP-GLES3.functional.texture.size.cube.512x512_rgb888_mipmap
@@ -36009,7 +35912,6 @@
dEQP-GLES3.functional.uniform_api.random.20
dEQP-GLES3.functional.uniform_api.random.21
dEQP-GLES3.functional.uniform_api.random.22
-dEQP-GLES3.functional.uniform_api.random.23
dEQP-GLES3.functional.uniform_api.random.24
dEQP-GLES3.functional.uniform_api.random.25
dEQP-GLES3.functional.uniform_api.random.26
@@ -37435,18 +37337,12 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.triangles
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_fan
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterization.flatshading.triangles
dEQP-GLES3.functional.rasterization.flatshading.triangle_strip
dEQP-GLES3.functional.rasterization.flatshading.triangle_fan
@@ -37467,7 +37363,6 @@
dEQP-GLES3.functional.rasterization.fbo.texture_2d.fill_rules.projected
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.triangles
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.triangles
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines_wide
@@ -37479,7 +37374,6 @@
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.fill_rules.projected
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.triangles
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.triangles
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines_wide
@@ -41831,7 +41725,6 @@
dEQP-GLES3.functional.draw.random.210
dEQP-GLES3.functional.flush_finish.wait
dEQP-GLES3.functional.flush_finish.flush
-dEQP-GLES3.functional.flush_finish.flush_wait
dEQP-GLES3.functional.flush_finish.finish
dEQP-GLES3.functional.flush_finish.finish_wait
dEQP-GLES3.functional.default_vertex_attrib.float.vertex_attrib_1f
diff --git a/android/cts/master/gles3-multisample.txt b/android/cts/master/gles3-multisample.txt
index deb109d..3916c49 100644
--- a/android/cts/master/gles3-multisample.txt
+++ b/android/cts/master/gles3-multisample.txt
@@ -165,18 +165,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -197,12 +185,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -223,12 +205,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -361,18 +337,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -393,12 +357,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -419,12 +377,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -557,16 +509,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -587,11 +529,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -612,11 +549,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -3882,18 +3814,12 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.triangles
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.triangle_fan
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.occlusion_query.scissor
dEQP-GLES3.functional.occlusion_query.depth_write
dEQP-GLES3.functional.occlusion_query.depth_clear
diff --git a/android/cts/master/gles3-rotate-landscape.txt b/android/cts/master/gles3-rotate-landscape.txt
index 1317c86..9f701a9 100644
--- a/android/cts/master/gles3-rotate-landscape.txt
+++ b/android/cts/master/gles3-rotate-landscape.txt
@@ -122,18 +122,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -154,12 +142,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -180,12 +162,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -318,18 +294,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -350,12 +314,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -376,12 +334,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -514,16 +466,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -544,11 +486,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -569,11 +506,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -858,15 +790,9 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterization.flatshading.lines
dEQP-GLES3.functional.rasterization.flatshading.line_strip
dEQP-GLES3.functional.rasterization.flatshading.line_loop
@@ -876,11 +802,9 @@
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines
diff --git a/android/cts/master/gles3-rotate-portrait.txt b/android/cts/master/gles3-rotate-portrait.txt
index 1317c86..9f701a9 100644
--- a/android/cts/master/gles3-rotate-portrait.txt
+++ b/android/cts/master/gles3-rotate-portrait.txt
@@ -122,18 +122,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -154,12 +142,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -180,12 +162,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -318,18 +294,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -350,12 +314,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -376,12 +334,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -514,16 +466,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -544,11 +486,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -569,11 +506,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -858,15 +790,9 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterization.flatshading.lines
dEQP-GLES3.functional.rasterization.flatshading.line_strip
dEQP-GLES3.functional.rasterization.flatshading.line_loop
@@ -876,11 +802,9 @@
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines
diff --git a/android/cts/master/gles3-rotate-reverse-landscape.txt b/android/cts/master/gles3-rotate-reverse-landscape.txt
index 1317c86..9f701a9 100644
--- a/android/cts/master/gles3-rotate-reverse-landscape.txt
+++ b/android/cts/master/gles3-rotate-reverse-landscape.txt
@@ -122,18 +122,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -154,12 +142,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -180,12 +162,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -318,18 +294,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -350,12 +314,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -376,12 +334,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -514,16 +466,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -544,11 +486,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -569,11 +506,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -858,15 +790,9 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterization.flatshading.lines
dEQP-GLES3.functional.rasterization.flatshading.line_strip
dEQP-GLES3.functional.rasterization.flatshading.line_loop
@@ -876,11 +802,9 @@
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines
diff --git a/android/cts/master/gles3-rotate-reverse-portrait.txt b/android/cts/master/gles3-rotate-reverse-portrait.txt
index 1317c86..9f701a9 100644
--- a/android/cts/master/gles3-rotate-reverse-portrait.txt
+++ b/android/cts/master/gles3-rotate-reverse-portrait.txt
@@ -122,18 +122,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_float.float_highp
@@ -154,12 +142,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_float.float_highp
@@ -180,12 +162,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_float.float_highp
@@ -318,18 +294,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_float.float_highp
@@ -350,12 +314,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_float.float_highp
@@ -376,12 +334,6 @@
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
-dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_float.float_highp
@@ -514,16 +466,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_float.float_highp
@@ -544,11 +486,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_float.float_highp
@@ -569,11 +506,6 @@
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec3_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.default.vec4_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
-dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_lowp
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_mediump
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_float.float_highp
@@ -858,15 +790,9 @@
dEQP-GLES3.functional.rasterization.interpolation.basic.lines
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
dEQP-GLES3.functional.rasterization.interpolation.projected.lines
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop
-dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
-dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
dEQP-GLES3.functional.rasterization.flatshading.lines
dEQP-GLES3.functional.rasterization.flatshading.line_strip
dEQP-GLES3.functional.rasterization.flatshading.line_loop
@@ -876,11 +802,9 @@
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines
-dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index 805672d..f27000f 100644
--- a/android/cts/master/gles31-master.txt
+++ b/android/cts/master/gles31-master.txt
@@ -2238,14 +2238,6 @@
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.lowp_compute.vec2
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.lowp_compute.vec3
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.lowp_compute.vec4
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_compute.scalar
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_compute.vec2
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_compute.vec3
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_compute.vec4
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_compute.scalar
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_compute.vec2
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_compute.vec3
-dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_compute.vec4
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan.lowp_compute.scalar
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan.lowp_compute.vec2
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan.lowp_compute.vec3
@@ -2646,7 +2638,6 @@
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.scalar
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.vec2
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.vec3
-dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.vec4
dEQP-GLES31.functional.shaders.builtin_functions.precision.refract.lowp_compute.scalar
dEQP-GLES31.functional.shaders.builtin_functions.precision.refract.lowp_compute.vec2
dEQP-GLES31.functional.shaders.builtin_functions.precision.refract.lowp_compute.vec3
@@ -3142,32 +3133,6 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.negative.interpolate_local
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.negative.interpolate_global
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.negative.interpolate_constant
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.singlesample_texture
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_texture_1
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_texture_2
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_texture_4
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_texture_8
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_texture_16
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.singlesample_rbo
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_rbo_1
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_rbo_2
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_rbo_4
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_rbo_8
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.multisample_rbo_16
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.singlesample_texture
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_texture_1
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_texture_2
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_texture_4
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_texture_8
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_texture_16
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.singlesample_rbo
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_rbo_1
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_rbo_2
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_rbo_4
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_rbo_8
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.multisample_rbo_16
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.negative.vec4_identity_swizzle
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.negative.vec4_crop_swizzle
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.negative.vec4_mixed_swizzle
@@ -4076,9 +4041,6 @@
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
@@ -4091,9 +4053,6 @@
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
@@ -4106,9 +4065,6 @@
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
@@ -32150,3 +32106,4 @@
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.18
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.19
+dEQP-GLES31.functional.default_vertex_array_object.vertex_attrib_divisor
diff --git a/android/cts/master/gles31-multisample.txt b/android/cts/master/gles31-multisample.txt
index 943a0b9..44d4428 100644
--- a/android/cts/master/gles31-multisample.txt
+++ b/android/cts/master/gles31-multisample.txt
@@ -24,93 +24,11 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.no_qualifiers.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.centroid_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.sample_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.points
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_fwidth
dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_separate_grid_100x100_drawcount_1
dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_separate_grid_200x200_drawcount_1
dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_separate_grid_500x500_drawcount_1
diff --git a/android/cts/master/gles31-rotate-landscape.txt b/android/cts/master/gles31-rotate-landscape.txt
index 4c0b027..c98268f 100644
--- a/android/cts/master/gles31-rotate-landscape.txt
+++ b/android/cts/master/gles31-rotate-landscape.txt
@@ -24,93 +24,11 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.no_qualifiers.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.centroid_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.sample_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.points
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_fwidth
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_equal
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_larger
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_smaller
diff --git a/android/cts/master/gles31-rotate-portrait.txt b/android/cts/master/gles31-rotate-portrait.txt
index 4c0b027..c98268f 100644
--- a/android/cts/master/gles31-rotate-portrait.txt
+++ b/android/cts/master/gles31-rotate-portrait.txt
@@ -24,93 +24,11 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.no_qualifiers.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.centroid_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.sample_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.points
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_fwidth
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_equal
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_larger
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_smaller
diff --git a/android/cts/master/gles31-rotate-reverse-landscape.txt b/android/cts/master/gles31-rotate-reverse-landscape.txt
index 4c0b027..c98268f 100644
--- a/android/cts/master/gles31-rotate-reverse-landscape.txt
+++ b/android/cts/master/gles31-rotate-reverse-landscape.txt
@@ -24,93 +24,11 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.no_qualifiers.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.centroid_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.sample_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.points
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_fwidth
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_equal
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_larger
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_smaller
diff --git a/android/cts/master/gles31-rotate-reverse-portrait.txt b/android/cts/master/gles31-rotate-reverse-portrait.txt
index 4c0b027..c98268f 100644
--- a/android/cts/master/gles31-rotate-reverse-portrait.txt
+++ b/android/cts/master/gles31-rotate-reverse-portrait.txt
@@ -24,93 +24,11 @@
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.default_framebuffer
-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.no_qualifiers.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.centroid_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.sample_qualifier.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines
-dEQP-GLES31.functional.shaders.helper_invocation.value.points
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_8_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_lines_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_max_samples
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_4_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdx
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_dfdy
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_max_samples_fwidth
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_equal
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_larger
dEQP-GLES31.functional.primitive_bounding_box.triangles.global_state.vertex_fragment.default_framebuffer_bbox_smaller
diff --git a/android/cts/master/src/gles2-failures.txt b/android/cts/master/src/gles2-failures.txt
index 74c0b72..0236295 100644
--- a/android/cts/master/src/gles2-failures.txt
+++ b/android/cts/master/src/gles2-failures.txt
@@ -1941,10 +1941,10 @@
dEQP-GLES2.functional.shaders.preprocessor.operator_precedence.mul_vs_plus_vertex
dEQP-GLES2.functional.shaders.preprocessor.operator_precedence.xor_vs_bitwise_and_fragment
dEQP-GLES2.functional.shaders.preprocessor.operator_precedence.xor_vs_bitwise_and_vertex
-dEQP-GLES2.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_debug_fragment
-dEQP-GLES2.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_debug_vertex
-dEQP-GLES2.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_token_fragment
-dEQP-GLES2.functional.shaders.preprocessor.pragmas.invalid_pragma_invalid_token_vertex
+dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_unrecognized_debug_fragment
+dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_unrecognized_debug_vertex
+dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_unrecognized_token_fragment
+dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_unrecognized_token_vertex
dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_fragment
dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_vertex
dEQP-GLES2.functional.shaders.preprocessor.predefined_macros.line_2_fragment
@@ -2585,9 +2585,7 @@
dEQP-GLES2.functional.texture.size.cube.15x15_rgba4444
dEQP-GLES2.functional.texture.size.cube.15x15_rgba8888
dEQP-GLES2.functional.texture.size.cube.16x16_l8_mipmap
-dEQP-GLES2.functional.texture.size.cube.256x256_rgba4444
dEQP-GLES2.functional.texture.size.cube.256x256_rgba4444_mipmap
-dEQP-GLES2.functional.texture.size.cube.512x512_rgba4444
dEQP-GLES2.functional.texture.size.cube.512x512_rgba4444_mipmap
dEQP-GLES2.functional.texture.specification.teximage2d_align.cube_l8_63_1
dEQP-GLES2.functional.texture.specification.teximage2d_align.cube_l8_63_2
diff --git a/android/cts/master/src/gles2-test-issues.txt b/android/cts/master/src/gles2-test-issues.txt
new file mode 100644
index 0000000..eb826ed
--- /dev/null
+++ b/android/cts/master/src/gles2-test-issues.txt
@@ -0,0 +1,3 @@
+# Bug 21526557
+dEQP-GLES2.functional.texture.size.cube.256x256_rgba4444
+dEQP-GLES2.functional.texture.size.cube.512x512_rgba4444
diff --git a/android/cts/master/src/gles3-driver-issues.txt b/android/cts/master/src/gles3-driver-issues.txt
index 7038ff9..888d94c 100644
--- a/android/cts/master/src/gles3-driver-issues.txt
+++ b/android/cts/master/src/gles3-driver-issues.txt
@@ -1,2 +1,6 @@
# Bug 21495208
dEQP-GLES3.functional.attribute_location.bind_aliasing.*
+
+# Bug 21737600
+dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_2_vertex
+dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.line_2_fragment
diff --git a/android/cts/master/src/gles3-hw-issues.txt b/android/cts/master/src/gles3-hw-issues.txt
index a3c6a9a..6e09723 100644
--- a/android/cts/master/src/gles3-hw-issues.txt
+++ b/android/cts/master/src/gles3-hw-issues.txt
@@ -847,3 +847,24 @@
# Bug 20681533
dEQP-GLES3.functional.texture.mipmap.cube.projected.nearest_nearest
+
+# Bug 21804494
+dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
+dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
+dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
+dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
+dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
+dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
+dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
+dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
+
+# Bug 21844307
+dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa*
+dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa*
diff --git a/android/cts/master/src/gles3-spec-issues.txt b/android/cts/master/src/gles3-spec-issues.txt
index c972291..d28c58b 100644
--- a/android/cts/master/src/gles3-spec-issues.txt
+++ b/android/cts/master/src/gles3-spec-issues.txt
@@ -509,3 +509,6 @@
# Khronos bugs 11207, 12408, internal bug 20699693
dEQP-GLES3.functional.shaders.arrays.invalid.empty_declaration_without_var_name_*
+
+# Khronos bug 13916, internal bug 20558284
+dEQP-GLES3.functional.flush_finish.flush_wait
diff --git a/android/cts/master/src/gles3-test-issues.txt b/android/cts/master/src/gles3-test-issues.txt
index 220d3d4..83b4002 100644
--- a/android/cts/master/src/gles3-test-issues.txt
+++ b/android/cts/master/src/gles3-test-issues.txt
@@ -41,6 +41,9 @@
# Bug 18323060
dEQP-GLES3.functional.shaders.random.all_features.fragment.16
+# Bug 21851700
+dEQP-GLES3.functional.shaders.random.all_features.fragment.56
+
# Bug 18093986
dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.usampler3d_vertex
@@ -64,3 +67,28 @@
# Bug 21620051
dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2darrayshadow_vertex
+
+# Bug 21725534
+dEQP-GLES3.functional.shaders.preprocessor.pragmas.pragma_unrecognized_debug_*
+dEQP-GLES3.functional.shaders.preprocessor.pragmas.pragma_unrecognized_token_*
+
+# Bug 21791303
+dEQP-GLES3.functional.uniform_api.random.23
+
+# Bug 22006723
+dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_*
+dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_*
+
+# Bug 22173211
+dEQP-GLES3.functional.texture.size.cube.256x256_rgba4444
+dEQP-GLES3.functional.texture.size.cube.512x512_rgba4444
+
+# Bug 22209622
+dEQP-GLES3.functional.shaders.texture_functions.textureoffset.isampler3d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_fixed_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler3d_float_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureoffset.usampler3d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler3d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_fixed_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_float_fragment
+dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.usampler3d_fragment
diff --git a/android/cts/master/src/gles31-hw-issues.txt b/android/cts/master/src/gles31-hw-issues.txt
index 595009b..4a911e5 100644
--- a/android/cts/master/src/gles31-hw-issues.txt
+++ b/android/cts/master/src/gles31-hw-issues.txt
@@ -57,3 +57,6 @@
dEQP-GLES31.functional.texture.gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
dEQP-GLES31.functional.texture.gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
dEQP-GLES31.functional.texture.gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
+
+# Bug 21816937
+dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.vec4
diff --git a/android/cts/master/src/gles31-multisample.txt b/android/cts/master/src/gles31-multisample.txt
index a50b6ac..ebfde24 100644
--- a/android/cts/master/src/gles31-multisample.txt
+++ b/android/cts/master/src/gles31-multisample.txt
@@ -3,7 +3,6 @@
dEQP-GLES31.info.*
dEQP-GLES31.functional.shaders.sample_variables.*.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.*.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.*
dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_depth
dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_stencil
dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_depth
diff --git a/android/cts/master/src/gles31-new-tests.txt b/android/cts/master/src/gles31-new-tests.txt
new file mode 100644
index 0000000..85003ca
--- /dev/null
+++ b/android/cts/master/src/gles31-new-tests.txt
@@ -0,0 +1,5 @@
+# Feature Request 21737242
+dEQP-GLES31.functional.tessellation.user_defined_io.negative.per_vertex_incorrect_control_explicit_output_array_size_1
+dEQP-GLES31.functional.tessellation.user_defined_io.negative.per_vertex_incorrect_control_explicit_output_array_size_2
+dEQP-GLES31.functional.tessellation.user_defined_io.negative.per_vertex_incorrect_control_explicit_output_array_size_3
+dEQP-GLES31.functional.tessellation.user_defined_io.negative.per_vertex_incorrect_eval_explicit_input_array_size
diff --git a/android/cts/master/src/gles31-rotation.txt b/android/cts/master/src/gles31-rotation.txt
index 044bc2d..4874f72 100644
--- a/android/cts/master/src/gles31-rotation.txt
+++ b/android/cts/master/src/gles31-rotation.txt
@@ -3,7 +3,6 @@
dEQP-GLES31.info.*
dEQP-GLES31.functional.shaders.sample_variables.*.default_framebuffer
dEQP-GLES31.functional.shaders.multisample_interpolation.*.default_framebuffer
-dEQP-GLES31.functional.shaders.helper_invocation.*
dEQP-GLES31.functional.primitive_bounding_box.*.default_framebuffer_*
dEQP-GLES31.functional.primitive_bounding_box.blit_fbo.*default*
dEQP-GLES31.functional.primitive_bounding_box.clear.*
diff --git a/android/cts/master/src/gles31-spec-issues.txt b/android/cts/master/src/gles31-spec-issues.txt
index f68ae46..26a63ea 100644
--- a/android/cts/master/src/gles31-spec-issues.txt
+++ b/android/cts/master/src/gles31-spec-issues.txt
@@ -1,5 +1,2 @@
-# Bug 13564
-dEQP-GLES31.functional.default_vertex_array_object.vertex_attrib_divisor
-
# Khronos bugs 11207, 12408, internal bug 20699693
dEQP-GLES31.functional.shaders.arrays_of_arrays.invalid.empty_declaration_without_var_name_*
diff --git a/android/cts/master/src/gles31-test-issues.txt b/android/cts/master/src/gles31-test-issues.txt
index 920c9a5..7817e57 100644
--- a/android/cts/master/src/gles31-test-issues.txt
+++ b/android/cts/master/src/gles31-test-issues.txt
@@ -23,3 +23,14 @@
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_16_bits.*_rg8_snorm.*
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_8_bits.r8_snorm_*
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_8_bits.*_r8_snorm.*
+
+# Bug 20453509
+dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.consistency.*
+dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.array_element.*
+
+# Bug 22006723
+dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_*
+dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_*
+
+# Bug 22180525
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_*_samples_*
diff --git a/android/scripts/common.py b/android/scripts/common.py
index ec9afb9..f9d36b5 100644
--- a/android/scripts/common.py
+++ b/android/scripts/common.py
@@ -241,8 +241,8 @@
def selectNDKPath ():
candidates = [
- os.path.expanduser("~/android-ndk-r10c"),
- "C:/android/android-ndk-r10c",
+ os.path.expanduser("~/android-ndk-r10e"),
+ "C:/android/android-ndk-r10e",
os.environ.get("ANDROID_NDK_PATH", None), # If not defined, return None
]
@@ -262,7 +262,7 @@
# NDK paths
ANDROID_NDK_PATH = selectNDKPath()
ANDROID_NDK_HOST_OS = getNDKHostOsName(ANDROID_NDK_PATH)
-ANDROID_NDK_TOOLCHAIN_VERSION = "r10c" # Toolchain file is selected based on this
+ANDROID_NDK_TOOLCHAIN_VERSION = "r10e" # Toolchain file is selected based on this
# Native code build settings
CMAKE_GENERATOR = selectByOS({
diff --git a/data/gles2/shaders/preprocessor.test b/data/gles2/shaders/preprocessor.test
index 6aeb5e1..d2dc32b 100644
--- a/data/gles2/shaders/preprocessor.test
+++ b/data/gles2/shaders/preprocessor.test
@@ -2719,11 +2719,13 @@
""
end
- case invalid_pragma_invalid_debug
- expect compile_fail
+ case pragma_unrecognized_debug
+ expect build_successful
both ""
#pragma debug(1.23)
+ // unrecognized preprocessor token
+
precision mediump float;
void main()
{
@@ -2732,11 +2734,13 @@
""
end
- case invalid_pragma_invalid_token
- expect compile_fail
+ case pragma_unrecognized_token
+ expect build_successful
both ""
#pragma ¤¤½
+ // trailing bytes form a valid but unrecognized preprocessor token
+
precision mediump float;
void main()
{
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
diff --git a/data/gles3/shaders/preprocessor.test b/data/gles3/shaders/preprocessor.test
index ed5e1f9..12e0d8c 100644
--- a/data/gles3/shaders/preprocessor.test
+++ b/data/gles3/shaders/preprocessor.test
@@ -3287,13 +3287,15 @@
""
end
- case invalid_pragma_invalid_debug
+ case pragma_unrecognized_debug
version 300 es
- expect compile_fail
+ expect build_successful
both ""
#version 300 es
#pragma debug(1.23)
+ // unrecognized preprocessor token
+
precision mediump float;
${DECLARATIONS}
void main()
@@ -3303,13 +3305,15 @@
""
end
- case invalid_pragma_invalid_token
+ case pragma_unrecognized_token
version 300 es
- expect compile_fail
+ expect build_successful
both ""
#version 300 es
#pragma ¤¤½
+ // trailing bytes form a valid but unrecognized preprocessor token
+
precision mediump float;
${DECLARATIONS}
void main()
diff --git a/data/gles31/shaders/implicit_conversions.test b/data/gles31/shaders/implicit_conversions.test
index 7499565..d2b5965 100644
--- a/data/gles31/shaders/implicit_conversions.test
+++ b/data/gles31/shaders/implicit_conversions.test
@@ -3511,7 +3511,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3533,7 +3533,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3577,7 +3577,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3599,7 +3599,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3643,7 +3643,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3665,7 +3665,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -3779,7 +3779,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -3801,7 +3801,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -3845,7 +3845,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -3867,7 +3867,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -3911,7 +3911,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -3933,7 +3933,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4331,7 +4331,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4353,7 +4353,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4397,7 +4397,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4419,7 +4419,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4463,7 +4463,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4485,7 +4485,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ false | false | false ];
+ output bool out0 = [ true | false | false ];
}
both ""
@@ -4599,7 +4599,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4621,7 +4621,7 @@
values
{
input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4665,7 +4665,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4687,7 +4687,7 @@
values
{
input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4731,7 +4731,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
@@ -4753,7 +4753,7 @@
values
{
input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ];
- output bool out0 = [ true | true | true ];
+ output bool out0 = [ false | true | true ];
}
both ""
diff --git a/data/gles31/shaders/linkage_geometry_uniform_types.test b/data/gles31/shaders/linkage_geometry_uniform_types.test
index d13a822..460cf83 100644
--- a/data/gles31/shaders/linkage_geometry_uniform_types.test
+++ b/data/gles31/shaders/linkage_geometry_uniform_types.test
@@ -33,7 +33,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mediump float geo_var;
void main()
@@ -77,7 +77,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec2 geo_var;
void main()
@@ -121,7 +121,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec3 geo_var;
void main()
@@ -165,7 +165,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec4 geo_var;
void main()
@@ -209,7 +209,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2 geo_var;
void main()
@@ -253,7 +253,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x3 geo_var;
void main()
@@ -297,7 +297,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x4 geo_var;
void main()
@@ -341,7 +341,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x2 geo_var;
void main()
@@ -385,7 +385,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3 geo_var;
void main()
@@ -429,7 +429,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x4 geo_var;
void main()
@@ -473,7 +473,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x2 geo_var;
void main()
@@ -517,7 +517,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x3 geo_var;
void main()
@@ -561,7 +561,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4 geo_var;
void main()
@@ -606,6 +606,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in int geo_var;
void main()
@@ -650,6 +651,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec2 geo_var;
void main()
@@ -694,6 +696,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec3 geo_var;
void main()
@@ -738,6 +741,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec4 geo_var;
void main()
@@ -782,6 +786,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uint geo_var;
void main()
@@ -826,6 +831,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec2 geo_var;
void main()
@@ -870,6 +876,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec3 geo_var;
void main()
@@ -914,6 +921,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec4 geo_var;
void main()
diff --git a/data/gles31/shaders/linkage_tessellation_uniform_types.test b/data/gles31/shaders/linkage_tessellation_uniform_types.test
index 616c971..5850049 100644
--- a/data/gles31/shaders/linkage_tessellation_uniform_types.test
+++ b/data/gles31/shaders/linkage_tessellation_uniform_types.test
@@ -41,7 +41,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mediump float te_out;
void main()
@@ -93,7 +93,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec2 te_out;
void main()
@@ -145,7 +145,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec3 te_out;
void main()
@@ -197,7 +197,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in vec4 te_out;
void main()
@@ -249,7 +249,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2 te_out;
void main()
@@ -301,7 +301,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x3 te_out;
void main()
@@ -353,7 +353,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x4 te_out;
void main()
@@ -405,7 +405,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x2 te_out;
void main()
@@ -457,7 +457,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3 te_out;
void main()
@@ -509,7 +509,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x4 te_out;
void main()
@@ -561,7 +561,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x2 te_out;
void main()
@@ -613,7 +613,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x3 te_out;
void main()
@@ -665,7 +665,7 @@
""
fragment ""
#version 310 es
- precision mediump float;
+ precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4 te_out;
void main()
@@ -718,6 +718,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in int te_out;
void main()
@@ -770,6 +771,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec2 te_out;
void main()
@@ -822,6 +824,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec3 te_out;
void main()
@@ -874,6 +877,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec4 te_out;
void main()
@@ -926,6 +930,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uint te_out;
void main()
@@ -978,6 +983,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec2 te_out;
void main()
@@ -1030,6 +1036,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec3 te_out;
void main()
@@ -1082,6 +1089,7 @@
""
fragment ""
#version 310 es
+ precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec4 te_out;
void main()
diff --git a/data/gles31/shaders/tessellation_negative_user_defined_io.test b/data/gles31/shaders/tessellation_negative_user_defined_io.test
index 36bd5e7..32ae315 100644
--- a/data/gles31/shaders/tessellation_negative_user_defined_io.test
+++ b/data/gles31/shaders/tessellation_negative_user_defined_io.test
@@ -114,3 +114,187 @@
}
""
end
+
+case per_vertex_incorrect_control_explicit_output_array_size_1
+ version 310 es
+ desc "Incorrectly sized tessellation control output array"
+ expect compile_or_link_fail
+ require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation }
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ tessellation_control ""
+ #version 310 es
+ ${TESSELLATION_CONTROL_DECLARATIONS}
+ out highp float varyingArray[3]; // size is not equal to gl_MaxPatchVertices
+ void main()
+ {
+ varyingArray[gl_InvocationID] = gl_in[0].gl_Position[gl_InvocationID];
+ ${TESSELLATION_CONTROL_OUTPUT}
+ }
+ ""
+ tessellation_evaluation ""
+ #version 310 es
+ ${TESSELLATION_EVALUATION_DECLARATIONS}
+ in highp float varyingArray[gl_MaxPatchVertices]; // size is correct
+ out mediump float te_out;
+ void main()
+ {
+ te_out = varyingArray[0] * gl_TessCoord.x + varyingArray[1] * gl_TessCoord.y + varyingArray[2];
+ ${TESSELLATION_EVALUATION_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 310 es
+ precision mediump float;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float te_out;
+ void main()
+ {
+ ${FRAG_COLOR} = vec4(te_out);
+ }
+ ""
+end
+
+case per_vertex_incorrect_control_explicit_output_array_size_2
+ version 310 es
+ desc "Incorrectly sized tessellation control output array"
+ expect compile_or_link_fail
+ require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation }
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ tessellation_control ""
+ #version 310 es
+ ${TESSELLATION_CONTROL_DECLARATIONS}
+ out highp float varyingArray[gl_MaxPatchVertices]; // size does not match layout declaration
+ void main()
+ {
+ varyingArray[gl_InvocationID] = gl_in[0].gl_Position[gl_InvocationID];
+ ${TESSELLATION_CONTROL_OUTPUT}
+ }
+ ""
+ tessellation_evaluation ""
+ #version 310 es
+ ${TESSELLATION_EVALUATION_DECLARATIONS}
+ in highp float varyingArray[gl_MaxPatchVertices]; // size is correct
+ out mediump float te_out;
+ void main()
+ {
+ te_out = varyingArray[0] * gl_TessCoord.x + varyingArray[1] * gl_TessCoord.y + varyingArray[2];
+ ${TESSELLATION_EVALUATION_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 310 es
+ precision mediump float;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float te_out;
+ void main()
+ {
+ ${FRAG_COLOR} = vec4(te_out);
+ }
+ ""
+end
+
+case per_vertex_incorrect_control_explicit_output_array_size_3
+ version 310 es
+ desc "Incorrectly sized tessellation control output array"
+ expect compile_or_link_fail
+ require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation }
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ tessellation_control ""
+ #version 310 es
+ ${TESSELLATION_CONTROL_DECLARATIONS}
+ out highp float varyingArray[${GL_MAX_PATCH_VERTICES}]; // size does not match layout declaration
+ void main()
+ {
+ varyingArray[gl_InvocationID] = gl_in[0].gl_Position[gl_InvocationID];
+ ${TESSELLATION_CONTROL_OUTPUT}
+ }
+ ""
+ tessellation_evaluation ""
+ #version 310 es
+ ${TESSELLATION_EVALUATION_DECLARATIONS}
+ in highp float varyingArray[gl_MaxPatchVertices]; // size is correct
+ out mediump float te_out;
+ void main()
+ {
+ te_out = varyingArray[0] * gl_TessCoord.x + varyingArray[1] * gl_TessCoord.y + varyingArray[2];
+ ${TESSELLATION_EVALUATION_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 310 es
+ precision mediump float;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float te_out;
+ void main()
+ {
+ ${FRAG_COLOR} = vec4(te_out);
+ }
+ ""
+end
+
+case per_vertex_incorrect_eval_explicit_input_array_size
+ version 310 es
+ desc "Incorrectly sized tessellation control output array"
+ expect compile_or_link_fail
+ require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation }
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ tessellation_control ""
+ #version 310 es
+ ${TESSELLATION_CONTROL_DECLARATIONS}
+ out highp float varyingArray[];
+ void main()
+ {
+ varyingArray[gl_InvocationID] = gl_in[0].gl_Position[gl_InvocationID];
+ ${TESSELLATION_CONTROL_OUTPUT}
+ }
+ ""
+ tessellation_evaluation ""
+ #version 310 es
+ ${TESSELLATION_EVALUATION_DECLARATIONS}
+ in highp float varyingArray[3]; // size is not equal to gl_MaxPatchVertices
+ out mediump float te_out;
+ void main()
+ {
+ te_out = varyingArray[0] * gl_TessCoord.x + varyingArray[1] * gl_TessCoord.y + varyingArray[2];
+ ${TESSELLATION_EVALUATION_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 310 es
+ precision mediump float;
+ ${FRAGMENT_DECLARATIONS}
+ in mediump float te_out;
+ void main()
+ {
+ ${FRAG_COLOR} = vec4(te_out);
+ }
+ ""
+end
diff --git a/doc/testlog-stylesheet/testlog.xsl b/doc/testlog-stylesheet/testlog.xsl
index b691945..e2225a3 100644
--- a/doc/testlog-stylesheet/testlog.xsl
+++ b/doc/testlog-stylesheet/testlog.xsl
@@ -1,4 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
diff --git a/external/fetch_sources.py b/external/fetch_sources.py
index 5f6a30f..e45f8e8 100644
--- a/external/fetch_sources.py
+++ b/external/fetch_sources.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import os
import sys
import shutil
diff --git a/framework/common/tcuCompressedTexture.cpp b/framework/common/tcuCompressedTexture.cpp
index 2be372e..7d0073b 100644
--- a/framework/common/tcuCompressedTexture.cpp
+++ b/framework/common/tcuCompressedTexture.cpp
@@ -2140,7 +2140,7 @@
}
}
-void unquantizeWeights (deUint32* dst, const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
+void unquantizeWeights (deUint32 dst[64], const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
{
const int numWeights = computeNumWeights(blockMode);
const ISEParams& iseParams = blockMode.weightISEParams;
@@ -2194,6 +2194,11 @@
for (int weightNdx = 0; weightNdx < numWeights; weightNdx++)
dst[weightNdx] += dst[weightNdx] > 32 ? 1 : 0;
+
+ // Initialize nonexistent weights to poison values
+ for (int weightNdx = numWeights; weightNdx < 64; weightNdx++)
+ dst[weightNdx] = ~0u;
+
}
void interpolateWeights (TexelWeightPair* dst, const deUint32* unquantizedWeights, int blockWidth, int blockHeight, const ASTCBlockMode& blockMode)
diff --git a/framework/common/tcuImageCompare.cpp b/framework/common/tcuImageCompare.cpp
index ced0145..469b095 100644
--- a/framework/common/tcuImageCompare.cpp
+++ b/framework/common/tcuImageCompare.cpp
@@ -31,6 +31,7 @@
#include "tcuRGBA.hpp"
#include "tcuTexture.hpp"
#include "tcuTextureUtil.hpp"
+#include "tcuFloat.hpp"
#include <string.h>
@@ -100,9 +101,9 @@
const int beginX = (acceptOutOfBoundsAsAnyValue) ? (maxPositionDeviation.x()) : (0);
const int beginY = (acceptOutOfBoundsAsAnyValue) ? (maxPositionDeviation.y()) : (0);
const int beginZ = (acceptOutOfBoundsAsAnyValue) ? (maxPositionDeviation.z()) : (0);
- const int endX = (acceptOutOfBoundsAsAnyValue) ? (width - maxPositionDeviation.x()) : (0);
- const int endY = (acceptOutOfBoundsAsAnyValue) ? (height - maxPositionDeviation.y()) : (0);
- const int endZ = (acceptOutOfBoundsAsAnyValue) ? (depth - maxPositionDeviation.z()) : (0);
+ const int endX = (acceptOutOfBoundsAsAnyValue) ? (width - maxPositionDeviation.x()) : (width);
+ const int endY = (acceptOutOfBoundsAsAnyValue) ? (height - maxPositionDeviation.y()) : (height);
+ const int endZ = (acceptOutOfBoundsAsAnyValue) ? (depth - maxPositionDeviation.z()) : (depth);
TCU_CHECK_INTERNAL(result.getWidth() == width && result.getHeight() == height && result.getDepth() == depth);
@@ -392,6 +393,75 @@
}
/*--------------------------------------------------------------------*//*!
+ * Returns the index of float in a float space without denormals
+ * so that:
+ * 1) f(0.0) = 0
+ * 2) f(-0.0) = 0
+ * 3) f(b) = f(a) + 1 <==> b = nextAfter(a)
+ *
+ * See computeFloatFlushRelaxedULPDiff for details
+ *//*--------------------------------------------------------------------*/
+static deInt32 getPositionOfIEEEFloatWithoutDenormals (float x)
+{
+ DE_ASSERT(!deIsNaN(x)); // not sane
+
+ if (x == 0.0f)
+ return 0;
+ else if (x < 0.0f)
+ return -getPositionOfIEEEFloatWithoutDenormals(-x);
+ else
+ {
+ DE_ASSERT(x > 0.0f);
+
+ const tcu::Float32 f(x);
+
+ if (f.isDenorm())
+ {
+ // Denorms are flushed to zero
+ return 0;
+ }
+ else
+ {
+ // sign is 0, and it's a normal number. Natural position is its bit
+ // pattern but since we've collapsed the denorms, we must remove
+ // the gap here too to keep the float enumeration continuous.
+ //
+ // Denormals occupy one exponent pattern. Removing one from
+ // exponent should to the trick. Add one since the removed range
+ // contained one representable value, 0.
+ return (deInt32)(f.bits() - (1u << 23u) + 1u);
+ }
+ }
+}
+
+static deUint32 computeFloatFlushRelaxedULPDiff (float a, float b)
+{
+ if (deIsNaN(a) && deIsNaN(b))
+ return 0;
+ else if (deIsNaN(a) || deIsNaN(b))
+ {
+ return 0xFFFFFFFFu;
+ }
+ else
+ {
+ // Using the "definition 5" in Muller, Jean-Michel. "On the definition of ulp (x)" (2005)
+ // assuming a floating point space is IEEE single precision floating point space without
+ // denormals (and signed zeros).
+ const deInt32 aIndex = getPositionOfIEEEFloatWithoutDenormals(a);
+ const deInt32 bIndex = getPositionOfIEEEFloatWithoutDenormals(b);
+ return (deUint32)de::abs(aIndex - bIndex);
+ }
+}
+
+static tcu::UVec4 computeFlushRelaxedULPDiff (const tcu::Vec4& a, const tcu::Vec4& b)
+{
+ return tcu::UVec4(computeFloatFlushRelaxedULPDiff(a.x(), b.x()),
+ computeFloatFlushRelaxedULPDiff(a.y(), b.y()),
+ computeFloatFlushRelaxedULPDiff(a.z(), b.z()),
+ computeFloatFlushRelaxedULPDiff(a.w(), b.w()));
+}
+
+/*--------------------------------------------------------------------*//*!
* \brief Per-pixel threshold-based comparison
*
* This compare computes per-pixel differences between result and reference
@@ -399,7 +469,8 @@
*
* This comparison uses ULP (units in last place) metric for computing the
* difference between floating-point values and thus this function can
- * be used only for comparing floating-point texture data.
+ * be used only for comparing floating-point texture data. In ULP calculation
+ * the denormal numbers are allowed to be flushed to zero.
*
* On failure error image is generated that shows where the failing pixels
* are.
@@ -432,17 +503,10 @@
{
for (int x = 0; x < width; x++)
{
- Vec4 refPix = reference.getPixel(x, y, z);
- Vec4 cmpPix = result.getPixel(x, y, z);
- UVec4 refBits;
- UVec4 cmpBits;
-
- // memcpy() is the way to do float->uint32 reinterpretation.
- memcpy(refBits.getPtr(), refPix.getPtr(), 4*sizeof(deUint32));
- memcpy(cmpBits.getPtr(), cmpPix.getPtr(), 4*sizeof(deUint32));
-
- UVec4 diff = abs(refBits.cast<int>() - cmpBits.cast<int>()).cast<deUint32>();
- bool isOk = boolAll(lessThanEqual(diff, threshold));
+ const Vec4 refPix = reference.getPixel(x, y, z);
+ const Vec4 cmpPix = result.getPixel(x, y, z);
+ const UVec4 diff = computeFlushRelaxedULPDiff(refPix, cmpPix);
+ const bool isOk = boolAll(lessThanEqual(diff, threshold));
maxDiff = max(maxDiff, diff);
diff --git a/framework/common/tcuInterval.hpp b/framework/common/tcuInterval.hpp
index 0a2f65f..0c29d57 100644
--- a/framework/common/tcuInterval.hpp
+++ b/framework/common/tcuInterval.hpp
@@ -118,7 +118,7 @@
bool intersects (const Interval& other) const
{
- return ((other.hi() >= lo() && other.lo() >= hi()) ||
+ return ((other.hi() >= lo() && other.lo() <= hi()) ||
(other.hasNaN() && hasNaN()));
}
diff --git a/framework/common/tcuSurface.cpp b/framework/common/tcuSurface.cpp
index 6e796e7..9a1238e 100644
--- a/framework/common/tcuSurface.cpp
+++ b/framework/common/tcuSurface.cpp
@@ -53,5 +53,5 @@
{
m_width = width;
m_height = height;
- m_pixels.resize(width*height);
+ m_pixels.setStorage(width * height);
}
diff --git a/framework/common/tcuSurface.hpp b/framework/common/tcuSurface.hpp
index 89f2073..b9e4863 100644
--- a/framework/common/tcuSurface.hpp
+++ b/framework/common/tcuSurface.hpp
@@ -27,7 +27,7 @@
#include "tcuRGBA.hpp"
#include "tcuTexture.hpp"
-#include <vector>
+#include "deArrayBuffer.hpp"
namespace tcu
{
@@ -62,9 +62,9 @@
private:
// \note Copy constructor and assignment operators are public and auto-generated
- int m_width;
- int m_height;
- std::vector<deUint32> m_pixels;
+ int m_width;
+ int m_height;
+ de::ArrayBuffer<deUint32> m_pixels;
} DE_WARN_UNUSED_TYPE;
inline void Surface::setPixel (int x, int y, RGBA col)
@@ -72,7 +72,7 @@
DE_ASSERT(de::inBounds(x, 0, m_width) && de::inBounds(y, 0, m_height));
const int pixOffset = y*m_width + x;
- deUint32* pixAddr = &m_pixels[pixOffset];
+ deUint32* pixAddr = m_pixels.getElementPtr(pixOffset);
#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
*pixAddr = col.getPacked();
@@ -89,7 +89,7 @@
DE_ASSERT(de::inBounds(x, 0, m_width) && de::inBounds(y, 0, m_height));
const int pixOffset = y*m_width + x;
- const deUint32* pixAddr = &m_pixels[pixOffset];
+ const deUint32* pixAddr = m_pixels.getElementPtr(pixOffset);
DE_STATIC_ASSERT(RGBA::RED_SHIFT == 0 && RGBA::GREEN_SHIFT == 8 && RGBA::BLUE_SHIFT == 16 && RGBA::ALPHA_SHIFT == 24);
@@ -104,13 +104,13 @@
/** Get pixel buffer access from surface. */
inline ConstPixelBufferAccess Surface::getAccess (void) const
{
- return ConstPixelBufferAccess(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), m_width, m_height, 1, m_pixels.empty() ? DE_NULL : &m_pixels[0]);
+ return ConstPixelBufferAccess(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), m_width, m_height, 1, m_pixels.empty() ? DE_NULL : m_pixels.getPtr());
}
/** Get pixel buffer access from surface. */
inline PixelBufferAccess Surface::getAccess (void)
{
- return PixelBufferAccess(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), m_width, m_height, 1, m_pixels.empty() ? DE_NULL : &m_pixels[0]);
+ return PixelBufferAccess(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), m_width, m_height, 1, m_pixels.empty() ? DE_NULL : m_pixels.getPtr());
}
} // tcu
diff --git a/framework/common/tcuTexture.cpp b/framework/common/tcuTexture.cpp
index d7e82c1..43c7616 100644
--- a/framework/common/tcuTexture.cpp
+++ b/framework/common/tcuTexture.cpp
@@ -111,6 +111,50 @@
#endif
}
+inline deUint8 readUint32Low8 (const deUint8* src)
+{
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ const deUint32 uint32ByteOffsetBits0To8 = 0; //!< least significant byte in the lowest address
+#else
+ const deUint32 uint32ByteOffsetBits0To8 = 3; //!< least significant byte in the highest address
+#endif
+
+ return src[uint32ByteOffsetBits0To8];
+}
+
+inline void writeUint32Low8 (deUint8* dst, deUint8 val)
+{
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ const deUint32 uint32ByteOffsetBits0To8 = 0; //!< least significant byte in the lowest address
+#else
+ const deUint32 uint32ByteOffsetBits0To8 = 3; //!< least significant byte in the highest address
+#endif
+
+ dst[uint32ByteOffsetBits0To8] = val;
+}
+
+inline deUint32 readUint32High24 (const deUint8* src)
+{
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ const deUint32 uint32ByteOffset8To32 = 1;
+#else
+ const deUint32 uint32ByteOffset8To32 = 0;
+#endif
+
+ return readUint24(src + uint32ByteOffset8To32);
+}
+
+inline void writeUint32High24 (deUint8* dst, deUint32 val)
+{
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ const deUint32 uint32ByteOffset8To32 = 1;
+#else
+ const deUint32 uint32ByteOffset8To32 = 0;
+#endif
+
+ writeUint24(dst + uint32ByteOffset8To32, val);
+}
+
// \todo [2011-09-21 pyry] Move to tcutil?
template <typename T>
inline T convertSatRte (float f)
@@ -788,9 +832,6 @@
const deUint8* const pixelPtr = (const deUint8*)getPixelPtr(x, y, z);
-#define UB32(OFFS, COUNT) ((*((const deUint32*)pixelPtr) >> (OFFS)) & ((1<<(COUNT))-1))
-#define NB32(OFFS, COUNT) channelToNormFloat(UB32(OFFS, COUNT), (COUNT))
-
DE_ASSERT(m_format.order == TextureFormat::DS || m_format.order == TextureFormat::D);
switch (m_format.type)
@@ -800,7 +841,8 @@
{
case TextureFormat::D:
case TextureFormat::DS: // \note Fall-through.
- return NB32(8, 24);
+ return (float)readUint32High24(pixelPtr) / 16777215.0f;
+
default:
DE_ASSERT(false);
return 0.0f;
@@ -814,9 +856,6 @@
DE_ASSERT(m_format.order == TextureFormat::D); // no other combined depth stencil types
return channelToFloat(pixelPtr, m_format.type);
}
-
-#undef UB32
-#undef NB32
}
int ConstPixelBufferAccess::getPixStencil (int x, int y, int z) const
@@ -832,8 +871,9 @@
case TextureFormat::UNSIGNED_INT_24_8:
switch (m_format.order)
{
- case TextureFormat::S: return (int)(*((const deUint32*)pixelPtr) >> 8);
- case TextureFormat::DS: return (int)(*((const deUint32*)pixelPtr) & 0xff);
+ case TextureFormat::S:
+ case TextureFormat::DS:
+ return (int)readUint32Low8(pixelPtr);
default:
DE_ASSERT(false);
@@ -842,7 +882,7 @@
case TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV:
DE_ASSERT(m_format.order == TextureFormat::DS);
- return *((const deUint32*)(pixelPtr+4)) & 0xff;
+ return (int)readUint32Low8(pixelPtr + 4);
default:
{
@@ -988,15 +1028,16 @@
deUint8* const pixelPtr = (deUint8*)getPixelPtr(x, y, z);
-#define PN(VAL, OFFS, BITS) (normFloatToChannel((VAL), (BITS)) << (OFFS))
-
switch (m_format.type)
{
case TextureFormat::UNSIGNED_INT_24_8:
switch (m_format.order)
{
- case TextureFormat::D: *((deUint32*)pixelPtr) = PN(depth, 8, 24); break;
- case TextureFormat::DS: *((deUint32*)pixelPtr) = (*((deUint32*)pixelPtr) & 0x000000ff) | PN(depth, 8, 24); break;
+ case TextureFormat::D:
+ case TextureFormat::DS:
+ writeUint32High24(pixelPtr, convertSatRteUint24(depth * 16777215.0f));
+ break;
+
default:
DE_ASSERT(false);
}
@@ -1012,8 +1053,6 @@
floatToChannel(pixelPtr, depth, m_format.type);
break;
}
-
-#undef PN
}
void PixelBufferAccess::setPixStencil (int stencil, int x, int y, int z) const
@@ -1024,15 +1063,16 @@
deUint8* const pixelPtr = (deUint8*)getPixelPtr(x, y, z);
-#define PU(VAL, OFFS, BITS) (uintToChannel((deUint32)(VAL), (BITS)) << (OFFS))
-
switch (m_format.type)
{
case TextureFormat::UNSIGNED_INT_24_8:
switch (m_format.order)
{
- case TextureFormat::S: *((deUint32*)pixelPtr) = PU(stencil, 8, 24); break;
- case TextureFormat::DS: *((deUint32*)pixelPtr) = (*((deUint32*)pixelPtr) & 0xffffff00) | PU(stencil, 0, 8); break;
+ case TextureFormat::S:
+ case TextureFormat::DS:
+ writeUint32Low8(pixelPtr, convertSat<deUint8>((deUint32)stencil));
+ break;
+
default:
DE_ASSERT(false);
}
@@ -1040,7 +1080,7 @@
case TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV:
DE_ASSERT(m_format.order == TextureFormat::DS);
- *((deUint32*)(pixelPtr+4)) = PU((deUint32)stencil, 0, 8);
+ writeUint32Low8(pixelPtr + 4, convertSat<deUint8>((deUint32)stencil));
break;
default:
@@ -1048,8 +1088,6 @@
intToChannel(pixelPtr, stencil, m_format.type);
break;
}
-
-#undef PU
}
static inline int imod (int a, int b)
diff --git a/framework/common/tcuTextureUtil.cpp b/framework/common/tcuTextureUtil.cpp
index d8018af..2591f10 100644
--- a/framework/common/tcuTextureUtil.cpp
+++ b/framework/common/tcuTextureUtil.cpp
@@ -718,9 +718,9 @@
// For combined formats, treat D and S as separate channels
if (hasDepth)
- fillWithComponentGradients(getEffectiveDepthStencilAccess(access, tcu::Sampler::MODE_DEPTH), colorA, colorB);
+ fillWithGrid(getEffectiveDepthStencilAccess(access, tcu::Sampler::MODE_DEPTH), cellSize, colorA, colorB);
if (hasStencil)
- fillWithComponentGradients(getEffectiveDepthStencilAccess(access, tcu::Sampler::MODE_STENCIL), colorA.swizzle(3,2,1,0), colorB.swizzle(3,2,1,0));
+ fillWithGrid(getEffectiveDepthStencilAccess(access, tcu::Sampler::MODE_STENCIL), cellSize, colorA.swizzle(3,2,1,0), colorB.swizzle(3,2,1,0));
}
else
{
diff --git a/framework/delibs/cmake/CFlags.cmake b/framework/delibs/cmake/CFlags.cmake
index d292e6e..ff25740 100644
--- a/framework/delibs/cmake/CFlags.cmake
+++ b/framework/delibs/cmake/CFlags.cmake
@@ -43,8 +43,8 @@
set(DE_3RD_PARTY_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_FLAGS} -w")
set(DE_3RD_PARTY_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_FLAGS} -w")
- # \note Add -Wconversion for more warnings
- set(WARNING_FLAGS "-Wall -Wextra -Wno-long-long -Wshadow -Wundef")
+ # \note Remove -Wno-sign-conversion for more warnings
+ set(WARNING_FLAGS "-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_FLAGS} ${WARNING_FLAGS} -ansi -pedantic ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_FLAGS} ${WARNING_FLAGS}")
diff --git a/framework/delibs/cmake/toolchain-android-r10e.cmake b/framework/delibs/cmake/toolchain-android-r10e.cmake
new file mode 100644
index 0000000..25fe730
--- /dev/null
+++ b/framework/delibs/cmake/toolchain-android-r10e.cmake
@@ -0,0 +1,175 @@
+# Platform defines.
+set(CMAKE_SYSTEM_NAME Linux)
+
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
+
+set(CMAKE_CROSSCOMPILING 1)
+
+# NDK installation path
+if (NOT DEFINED ANDROID_NDK_PATH)
+ message(FATAL_ERROR "Please provide ANDROID_NDK_PATH")
+endif ()
+
+# Host os (for toolchain binaries)
+if (NOT DEFINED ANDROID_NDK_HOST_OS)
+ message(STATUS "Warning: ANDROID_NDK_HOST_OS is not set")
+ if (WIN32)
+ set(ANDROID_NDK_HOST_OS "windows")
+ elseif (UNIX)
+ set(ANDROID_NDK_HOST_OS "linux-86")
+ endif ()
+endif ()
+
+# Compile target
+set(ANDROID_ABI "armeabi-v7a" CACHE STRING "Android ABI")
+set(ANDROID_NDK_TARGET "android-${DE_ANDROID_API}")
+
+# dE defines
+set(DE_OS "DE_OS_ANDROID")
+
+if (NOT DEFINED DE_COMPILER)
+ set(DE_COMPILER "DE_COMPILER_CLANG")
+endif ()
+
+if (NOT DEFINED DE_ANDROID_API)
+ set(DE_ANDROID_API 9)
+endif ()
+
+set(COMMON_C_FLAGS "-D__STDC_INT64__")
+set(COMMON_CXX_FLAGS "${COMMON_C_FLAGS} -frtti -fexceptions")
+set(COMMON_LINKER_FLAGS "")
+set(ARM_C_FLAGS "-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ ")
+
+# ABI-dependent bits
+if (ANDROID_ABI STREQUAL "x86")
+ set(DE_CPU "DE_CPU_X86")
+ set(CMAKE_SYSTEM_PROCESSOR i686-android-linux)
+
+ set(ANDROID_CC_PATH "${ANDROID_NDK_PATH}/toolchains/x86-4.9/prebuilt/${ANDROID_NDK_HOST_OS}/")
+ set(CROSS_COMPILE "${ANDROID_CC_PATH}bin/i686-linux-android-")
+ set(ANDROID_SYSROOT "${ANDROID_NDK_PATH}/platforms/${ANDROID_NDK_TARGET}/arch-x86")
+
+ set(CMAKE_FIND_ROOT_PATH
+ "${ANDROID_CC_PATH}i686-linux-android"
+ "${ANDROID_CC_PATH}lib/gcc/i686-linux-android/4.9"
+ )
+
+ set(TARGET_C_FLAGS "-march=i686 -msse3 -mstackrealign -mfpmath=sse")
+ set(TARGET_LINKER_FLAGS "")
+ set(LLVM_TRIPLE "i686-none-linux-android")
+
+elseif (ANDROID_ABI STREQUAL "armeabi" OR
+ ANDROID_ABI STREQUAL "armeabi-v7a")
+ set(DE_CPU "DE_CPU_ARM")
+ set(CMAKE_SYSTEM_PROCESSOR arm-linux-androideabi)
+
+ set(ANDROID_CC_PATH "${ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-4.9/prebuilt/${ANDROID_NDK_HOST_OS}/")
+ set(CROSS_COMPILE "${ANDROID_CC_PATH}bin/arm-linux-androideabi-")
+ set(ANDROID_SYSROOT "${ANDROID_NDK_PATH}/platforms/${ANDROID_NDK_TARGET}/arch-arm")
+
+ if (ANDROID_ABI STREQUAL "armeabi-v7a")
+ set(TARGET_C_FLAGS "${ARM_C_FLAGS} -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp")
+ set(TARGET_LINKER_FLAGS "-Wl,--fix-cortex-a8 -march=armv7-a")
+ set(LLVM_TRIPLE "armv7-none-linux-androideabi")
+
+ else () # armeabi
+ set(TARGET_C_FLAGS "${ARM_C_FLAGS} -march=armv5te -mfloat-abi=softfp")
+ set(TARGET_LINKER_FLAGS "-Wl,--fix-cortex-a8 -march=armv5te")
+ set(LLVM_TRIPLE "armv5te-none-linux-androideabi")
+ endif ()
+
+ set(CMAKE_FIND_ROOT_PATH
+ "${ANDROID_CC_PATH}arm-linux-androideabi"
+ )
+
+elseif (ANDROID_ABI STREQUAL "arm64-v8a")
+ set(DE_CPU "DE_CPU_ARM_64")
+ set(CMAKE_SYSTEM_PROCESSOR aarch64-linux-android)
+ set(CMAKE_SIZEOF_VOID_P 8)
+
+ set(ANDROID_CC_PATH "${ANDROID_NDK_PATH}/toolchains/aarch64-linux-android-4.9/prebuilt/${ANDROID_NDK_HOST_OS}/")
+ set(CROSS_COMPILE "${ANDROID_CC_PATH}bin/aarch64-linux-android-")
+ set(ANDROID_SYSROOT "${ANDROID_NDK_PATH}/platforms/${ANDROID_NDK_TARGET}/arch-arm64")
+
+ set(CMAKE_FIND_ROOT_PATH
+ "${ANDROID_CC_PATH}arm-linux-androideabi"
+ )
+
+ set(TARGET_C_FLAGS "-march=armv8-a")
+ set(TARGET_LINKER_FLAGS "-Wl,--fix-cortex-a53-835769 -Wl,--fix-cortex-a53-835769 -march=armv8-a")
+ set(LLVM_TRIPLE "aarch64-none-linux-android")
+
+ if (DE_COMPILER STREQUAL "DE_COMPILER_GCC")
+ set(TARGET_C_FLAGS "${TARGET_C_FLAGS} -mabi=lp64")
+ endif ()
+
+else ()
+ message(FATAL_ERROR "Unknown ABI \"${ANDROID_ABI}\"")
+endif ()
+
+# C++ library
+if (ANDROID_ABI STREQUAL "x86")
+ # Use gnu-libstc++, since libc++ is currently broken on x86, bug #22124988
+ set(ANDROID_CXX_LIBRARY "${ANDROID_NDK_PATH}/sources/cxx-stl/gnu-libstdc++/4.9/libs/${ANDROID_ABI}/libgnustl_static.a")
+ set(CXX_INCLUDES "-I${ANDROID_NDK_PATH}/sources/cxx-stl/gnu-libstdc++/4.9/include -I${ANDROID_NDK_PATH}/sources/cxx-stl/gnu-libstdc++/4.9/libs/${ANDROID_ABI}/include")
+ set(CMAKE_FIND_ROOT_PATH "${ANDROID_NDK_PATH}/sources/cxx-stl/gnu-libstdc++/4.9/libs/${ANDROID_ABI}" ${CMAKE_FIND_ROOT_PATH})
+else ()
+ # Use LLVM libc++ for full C++11 support
+ set(ANDROID_CXX_LIBRARY "${ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_ABI}/libc++_static.a")
+ set(CXX_INCLUDES "-I${ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libcxx/include")
+ set(CMAKE_FIND_ROOT_PATH "" ${CMAKE_FIND_ROOT_PATH})
+endif ()
+
+set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ANDROID_SYSROOT})
+
+include(CMakeForceCompiler)
+
+if (DE_COMPILER STREQUAL "DE_COMPILER_GCC")
+ if (ANDROID_NDK_HOST_OS STREQUAL "linux-x86" OR
+ ANDROID_NDK_HOST_OS STREQUAL "linux-x86_64" OR
+ ANDROID_NDK_HOST_OS STREQUAL "darwin-x86")
+ cmake_force_c_compiler("${CROSS_COMPILE}gcc" GNU)
+ cmake_force_cxx_compiler("${CROSS_COMPILE}g++" GNU)
+ elseif (ANDROID_NDK_HOST_OS STREQUAL "windows")
+ cmake_force_c_compiler("${CROSS_COMPILE}gcc.exe" GNU)
+ cmake_force_cxx_compiler("${CROSS_COMPILE}g++.exe" GNU)
+ else ()
+ message(FATAL_ERROR "Unknown ANDROID_NDK_HOST_OS")
+ endif ()
+
+ set(TARGET_C_FLAGS "-mandroid ${TARGET_C_FLAGS}")
+
+elseif (DE_COMPILER STREQUAL "DE_COMPILER_CLANG")
+ set(LLVM_PATH "${ANDROID_NDK_PATH}/toolchains/llvm-3.6/prebuilt/${ANDROID_NDK_HOST_OS}/")
+
+ if (ANDROID_NDK_HOST_OS STREQUAL "linux-x86" OR
+ ANDROID_NDK_HOST_OS STREQUAL "linux-x86_64" OR
+ ANDROID_NDK_HOST_OS STREQUAL "darwin-x86")
+ cmake_force_c_compiler("${LLVM_PATH}bin/clang" Clang)
+ cmake_force_cxx_compiler("${LLVM_PATH}bin/clang++" Clang)
+ set(CMAKE_AR "${LLVM_PATH}/bin/llvm-ar" CACHE FILEPATH "Archiver")
+ elseif (ANDROID_NDK_HOST_OS STREQUAL "windows")
+ cmake_force_c_compiler("${LLVM_PATH}bin/clang.exe" Clang)
+ cmake_force_cxx_compiler("${LLVM_PATH}bin/clang++.exe" Clang)
+ set(CMAKE_AR "${LLVM_PATH}bin/llvm-ar.exe" CACHE FILEPATH "Archiver")
+ else ()
+ message(FATAL_ERROR "Unknown ANDROID_NDK_HOST_OS")
+ endif ()
+
+ set(TARGET_C_FLAGS "-target ${LLVM_TRIPLE} -gcc-toolchain ${ANDROID_CC_PATH} ${TARGET_C_FLAGS}")
+ set(TARGET_LINKER_FLAGS "-target ${LLVM_TRIPLE} -gcc-toolchain ${ANDROID_CC_PATH} ${TARGET_LINKER_FLAGS}")
+
+endif ()
+
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "")
+set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "")
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+# \note Without CACHE STRING FORCE cmake ignores these.
+set(CMAKE_C_FLAGS "--sysroot=${ANDROID_SYSROOT} ${COMMON_C_FLAGS} ${TARGET_C_FLAGS}" CACHE STRING "" FORCE)
+set(CMAKE_CXX_FLAGS "--sysroot=${ANDROID_SYSROOT} ${COMMON_CXX_FLAGS} ${TARGET_C_FLAGS} ${CXX_INCLUDES} -I${ANDROID_NDK_PATH}/sources/android/support/include" CACHE STRING "" FORCE)
+set(CMAKE_SHARED_LINKER_FLAGS "-nodefaultlibs -Wl,-shared,-Bsymbolic -Wl,--no-undefined ${COMMON_LINKER_FLAGS} ${TARGET_LINKER_FLAGS}" CACHE STRING "" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS "-nodefaultlibs ${COMMON_LINKER_FLAGS} ${TARGET_LINKER_FLAGS}" CACHE STRING "" FORCE)
diff --git a/framework/delibs/debase/CMakeLists.txt b/framework/delibs/debase/CMakeLists.txt
index 6f18c88..b960bbc 100644
--- a/framework/delibs/debase/CMakeLists.txt
+++ b/framework/delibs/debase/CMakeLists.txt
@@ -14,6 +14,7 @@
deInt32Test.c
deMath.c
deMath.h
+ deMathTest.c
deMemory.c
deMemory.h
deRandom.c
diff --git a/framework/delibs/debase/deDefs.h b/framework/delibs/debase/deDefs.h
index 7274914..42826f7 100644
--- a/framework/delibs/debase/deDefs.h
+++ b/framework/delibs/debase/deDefs.h
@@ -294,7 +294,7 @@
/** Test assert macro for use in testers (same as DE_ASSERT, but always enabled). */
#define DE_TEST_ASSERT(X) do { if ((!deGetFalse() && (X)) ? DE_FALSE : DE_TRUE) deAssertFail(#X, __FILE__, __LINE__); } while(deGetFalse())
-#if (DE_COMPILER == DE_COMPILER_GCC)
+#if (DE_COMPILER == DE_COMPILER_GCC) || (DE_COMPILER == DE_COMPILER_CLANG)
/* GCC 4.8 and newer warns about unused typedefs. */
# define DE_UNUSED_TYPEDEF_ATTR __attribute__((unused))
#else
diff --git a/framework/delibs/debase/deInt32.h b/framework/delibs/debase/deInt32.h
index 0423183..6e574e5 100644
--- a/framework/delibs/debase/deInt32.h
+++ b/framework/delibs/debase/deInt32.h
@@ -356,6 +356,16 @@
return b0|b1|b2|b3;
}
+/*--------------------------------------------------------------------*//*!
+ * \brief Reverse bytes in 16-bit integer (for example MSB -> LSB).
+ * \param a Input value.
+ * \return The input with bytes reversed
+ *//*--------------------------------------------------------------------*/
+DE_INLINE deUint16 deReverseBytes16 (deUint16 v)
+{
+ return (deUint16)((v << 8) | (v >> 8));
+}
+
DE_INLINE deInt32 deSafeMul32 (deInt32 a, deInt32 b)
{
deInt32 res = a * b;
diff --git a/framework/delibs/debase/deInt32Test.c b/framework/delibs/debase/deInt32Test.c
index 9291a1f..9d3d29a 100644
--- a/framework/delibs/debase/deInt32Test.c
+++ b/framework/delibs/debase/deInt32Test.c
@@ -168,6 +168,11 @@
DE_TEST_ASSERT(deSignExtendTo32((int)0x184A0, 17) == (int)0xFFFF84A0);
DE_TEST_ASSERT(deSignExtendTo32((int)0x7A016601, 32) == (int)0x7A016601);
DE_TEST_ASSERT(deSignExtendTo32((int)0x8A016601, 32) == (int)0x8A016601);
+
+ DE_TEST_ASSERT(deReverseBytes32(0x11223344) == 0x44332211);
+ DE_TEST_ASSERT(deReverseBytes32(0xfecddeef) == 0xefdecdfe);
+ DE_TEST_ASSERT(deReverseBytes16(0x1122) == 0x2211);
+ DE_TEST_ASSERT(deReverseBytes16(0xdeef) == 0xefde);
}
DE_END_EXTERN_C
diff --git a/framework/delibs/debase/deMath.c b/framework/delibs/debase/deMath.c
index 259286c..26e2aef 100644
--- a/framework/delibs/debase/deMath.c
+++ b/framework/delibs/debase/deMath.c
@@ -22,6 +22,7 @@
*//*--------------------------------------------------------------------*/
#include "deMath.h"
+#include "deInt32.h"
#if (DE_COMPILER == DE_COMPILER_MSC)
# include <float.h>
@@ -133,3 +134,56 @@
return 2.0 * deRound(a / 2.0);
return deRound(a);
}
+
+float deInt32ToFloatRoundToNegInf (deInt32 x)
+{
+ /* \note Sign bit is separate so the range is symmetric */
+ if (x >= -0xFFFFFF && x <= 0xFFFFFF)
+ {
+ /* 24 bits are representable (23 mantissa + 1 implicit). */
+ return (float)x;
+ }
+ else if (x != -0x7FFFFFFF - 1)
+ {
+ /* we are losing bits */
+ const int exponent = 31 - deClz32((deUint32)deAbs32(x));
+ const int numLostBits = exponent - 23;
+ const deUint32 lostMask = deBitMask32(0, numLostBits);
+
+ DE_ASSERT(numLostBits > 0);
+
+ if (x > 0)
+ {
+ /* Mask out lost bits to floor to a representable value */
+ return (float)(deInt32)(~lostMask & (deUint32)x);
+ }
+ else if ((lostMask & (deUint32)-x) == 0u)
+ {
+ /* this was a representable value */
+ DE_ASSERT( (deInt32)(float)x == x );
+ return (float)x;
+ }
+ else
+ {
+ /* not representable, choose the next lower */
+ const float nearestHigher = (float)-(deInt32)(~lostMask & (deUint32)-x);
+ const float oneUlp = (float)(1u << (deUint32)numLostBits);
+ const float nearestLower = nearestHigher - oneUlp;
+
+ /* check sanity */
+ DE_ASSERT((deInt32)(float)nearestHigher > (deInt32)(float)nearestLower);
+
+ return nearestLower;
+ }
+ }
+ else
+ return -(float)0x80000000u;
+}
+
+float deInt32ToFloatRoundToPosInf (deInt32 x)
+{
+ if (x == -0x7FFFFFFF - 1)
+ return -(float)0x80000000u;
+ else
+ return -deInt32ToFloatRoundToNegInf(-x);
+}
diff --git a/framework/delibs/debase/deMath.h b/framework/delibs/debase/deMath.h
index b6f5487..12b25a5 100644
--- a/framework/delibs/debase/deMath.h
+++ b/framework/delibs/debase/deMath.h
@@ -56,6 +56,8 @@
deRoundingMode deGetRoundingMode (void);
deBool deSetRoundingMode (deRoundingMode mode);
+void deMath_selfTest (void);
+
/* Float properties */
/* \note The NaN test probably won't work with -ffast-math */
@@ -186,11 +188,27 @@
DE_INLINE deBool deFloatCmpGT (float a, float b) { return (a > b); }
DE_INLINE deBool deFloatCmpGE (float a, float b) { return (a >= b); }
+/* Convert int to float. If the value cannot be represented exactly in native single precision format, return
+ * either the nearest lower or the nearest higher representable value, chosen in an implementation-defined manner.
+ *
+ * \note Choosing either nearest lower or nearest higher means that implementation could for example consistently
+ * choose the lower value, i.e. this function does not round towards nearest.
+ * \note Value returned is in native single precision format. For example with x86 extended precision, the value
+ * returned might not be representable in IEEE single precision float.
+ */
+DE_INLINE float deInt32ToFloat (deInt32 x) { return (float)x; }
+
+/* Convert to float. If the value cannot be represented exactly in IEEE single precision floating point format,
+ * return the nearest lower (round towards negative inf). */
+float deInt32ToFloatRoundToNegInf (deInt32 x);
+
+/* Convert to float. If the value cannot be represented exactly IEEE single precision floating point format,
+ * return the nearest higher (round towards positive inf). */
+float deInt32ToFloatRoundToPosInf (deInt32 x);
+
/* Conversion to integer. */
-DE_INLINE float deInt32ToFloat (deInt32 x) { return (float)x; }
DE_INLINE deInt32 deChopFloatToInt32 (float x) { return (deInt32)x; }
-
DE_INLINE deInt32 deFloorFloatToInt32 (float x) { return (deInt32)(deFloatFloor(x)); }
DE_INLINE deInt32 deCeilFloatToInt32 (float x) { return (deInt32)(deFloatCeil(x)); }
diff --git a/framework/delibs/debase/deMathTest.c b/framework/delibs/debase/deMathTest.c
new file mode 100644
index 0000000..d8e73a7
--- /dev/null
+++ b/framework/delibs/debase/deMathTest.c
@@ -0,0 +1,107 @@
+/*-------------------------------------------------------------------------
+ * drawElements Base Portability Library
+ * -------------------------------------
+ *
+ * Copyright 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Testing of deMath functions.
+ *//*--------------------------------------------------------------------*/
+
+#include "deMath.h"
+#include "deRandom.h"
+
+DE_BEGIN_EXTERN_C
+
+static deBool conversionToFloatLosesPrecision (deInt32 x)
+{
+ if (x == -0x7FFFFFFF - 1)
+ return DE_FALSE;
+ else if (x < 0)
+ return conversionToFloatLosesPrecision(-x);
+ else if (x == 0)
+ return DE_FALSE;
+ else if (((deUint32)x & 0x1) == 0)
+ return conversionToFloatLosesPrecision(x >> 1); /* remove trailing zeros */
+ else
+ return x > ((1 << 24) - 1); /* remaining part does not fit in the mantissa? */
+}
+
+static void testSingleInt32ToFloat (deInt32 x)
+{
+ /* roundTowardsToNegInf(x) <= round(x) <= roundTowardsPosInf(x). */
+ /* \note: Need to use inequalities since round(x) returns arbitrary precision floats. */
+ DE_TEST_ASSERT(deInt32ToFloatRoundToNegInf(x) <= deInt32ToFloat(x));
+ DE_TEST_ASSERT(deInt32ToFloat(x) <= deInt32ToFloatRoundToPosInf(x));
+
+ /* if precision is lost, floor(x) < ceil(x). Else floor(x) == ceil(x) */
+ if (conversionToFloatLosesPrecision(x))
+ DE_TEST_ASSERT(deInt32ToFloatRoundToNegInf(x) < deInt32ToFloatRoundToPosInf(x));
+ else
+ DE_TEST_ASSERT(deInt32ToFloatRoundToNegInf(x) == deInt32ToFloatRoundToPosInf(x));
+
+ /* max one ulp from each other */
+ if (deInt32ToFloatRoundToNegInf(x) < deInt32ToFloatRoundToPosInf(x))
+ {
+ union
+ {
+ float f;
+ deInt32 u;
+ } v0, v1;
+
+ v0.f = deInt32ToFloatRoundToNegInf(x);
+ v1.f = deInt32ToFloatRoundToPosInf(x);
+
+ DE_TEST_ASSERT(v0.u + 1 == v1.u || v0.u == v1.u + 1);
+ }
+}
+
+static void testInt32ToFloat (void)
+{
+ const int numIterations = 2500000;
+
+ int sign;
+ int numBits;
+ int delta;
+ int ndx;
+ deRandom rnd;
+
+ deRandom_init(&rnd, 0xdeadbeefu-1);
+
+ for (sign = -1; sign < 1; ++sign)
+ for (numBits = 0; numBits < 32; ++numBits)
+ for (delta = -2; delta < 3; ++delta)
+ {
+ const deInt64 x = (deInt64)(sign == -1 ? (-1) : (+1)) * (1LL << (deInt64)numBits) + (deInt64)delta;
+
+ /* would overflow */
+ if (x > 0x7FFFFFFF || x < -0x7FFFFFFF - 1)
+ continue;
+
+ testSingleInt32ToFloat((deInt32)x);
+ }
+
+ for (ndx = 0; ndx < numIterations; ++ndx)
+ testSingleInt32ToFloat((deInt32)deRandom_getUint32(&rnd));
+}
+
+void deMath_selfTest (void)
+{
+ /* Test Int32ToFloat*(). */
+ testInt32ToFloat();
+}
+
+DE_END_EXTERN_C
diff --git a/framework/delibs/decpp/CMakeLists.txt b/framework/delibs/decpp/CMakeLists.txt
index 974c385..1d8bbf1 100644
--- a/framework/delibs/decpp/CMakeLists.txt
+++ b/framework/delibs/decpp/CMakeLists.txt
@@ -59,5 +59,21 @@
deSpinBarrier.hpp
)
+set(DECPP_LIBS
+ debase
+ depool
+ dethread
+ deutil
+ )
+
+# \note [pyry] Somewhat kludgy that toolchain file doesn't set it, but there is no easy way
+if (DE_OS_IS_ANDROID)
+ if (DEFINED ANDROID_CXX_LIBRARY)
+ set(DECPP_LIBS ${DECPP_LIBS} ${ANDROID_CXX_LIBRARY})
+ else ()
+ message(STATUS "Warning: ANDROID_CXX_LIBRARY not defined")
+ endif ()
+endif ()
+
add_library(decpp STATIC ${DECPP_SRCS})
-target_link_libraries(decpp debase depool dethread deutil)
+target_link_libraries(decpp ${DECPP_LIBS})
diff --git a/framework/delibs/deimage/deImage.c b/framework/delibs/deimage/deImage.c
index 59f1233..ff8f9be 100644
--- a/framework/delibs/deimage/deImage.c
+++ b/framework/delibs/deimage/deImage.c
@@ -125,8 +125,8 @@
{
for (x = 0; x < dstWidth; x++)
{
- float xFloat = (float)(x + 0.5f) / (float)dstWidth * (float)srcImage->width - 0.5f;
- float yFloat = (float)(y + 0.5f) / (float)dstHeight * (float)srcImage->height - 0.5f;
+ float xFloat = ((float)x + 0.5f) / (float)dstWidth * (float)srcImage->width - 0.5f;
+ float yFloat = ((float)y + 0.5f) / (float)dstHeight * (float)srcImage->height - 0.5f;
int xFixed = deFloorFloatToInt32(xFloat * 256.0f);
int yFixed = deFloorFloatToInt32(yFloat * 256.0f);
int xFactor = (xFixed & 0xFF);
diff --git a/framework/delibs/deutil/deSocket.c b/framework/delibs/deutil/deSocket.c
index af5a179..ce8a1dd 100644
--- a/framework/delibs/deutil/deSocket.c
+++ b/framework/delibs/deutil/deSocket.c
@@ -24,6 +24,7 @@
#include "deSocket.h"
#include "deMemory.h"
#include "deMutex.h"
+#include "deInt32.h"
#if (DE_OS == DE_OS_WIN32)
# define DE_USE_WINSOCK
@@ -219,17 +220,27 @@
/* Common socket functions. */
-static deUint16 deHostOrderShortToNetworkOrder (deUint16 v)
+static deUint16 deHostToNetworkOrder16 (deUint16 v)
{
- /*
- * On some platforms htons is defined as a macro which expands to something
- * that evaluates to some other type than uint16_t (i.e. does not conform
- * to POSIX-1-2001 or Winsock). Do a redundant uint16 conversion to work
- * around conversion warnings on these platforms.
- */
- return (deUint16)htons(v);
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ return deReverseBytes16(v);
+#else
+ return v;
+#endif
}
+static deUint16 deNetworkToHostOrder16 (deUint16 v)
+{
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ return deReverseBytes16(v);
+#else
+ return v;
+#endif
+}
+
+DE_STATIC_ASSERT(sizeof(((struct sockaddr_in*)DE_NULL)->sin_port) == sizeof(deUint16));
+DE_STATIC_ASSERT(sizeof(((struct sockaddr_in6*)DE_NULL)->sin6_port) == sizeof(deUint16));
+
static int deSocketFamilyToBsdFamily (deSocketFamily family)
{
switch (family)
@@ -307,13 +318,13 @@
{
if (*bsdAddrLen < (NativeSocklen)sizeof(struct sockaddr_in))
return DE_FALSE;
- ((struct sockaddr_in*)bsdAddr)->sin_port = deHostOrderShortToNetworkOrder((deUint16)address->port);
+ ((struct sockaddr_in*)bsdAddr)->sin_port = deHostToNetworkOrder16((deUint16)address->port);
}
else if (bsdAddr->sa_family == AF_INET6)
{
if (*bsdAddrLen < (NativeSocklen)sizeof(struct sockaddr_in6))
return DE_FALSE;
- ((struct sockaddr_in6*)bsdAddr)->sin6_port = deHostOrderShortToNetworkOrder((deUint16)address->port);
+ ((struct sockaddr_in6*)bsdAddr)->sin6_port = deHostToNetworkOrder16((deUint16)address->port);
}
else
return DE_FALSE;
@@ -330,7 +341,7 @@
return DE_FALSE;
}
- addr4->sin_port = deHostOrderShortToNetworkOrder((deUint16)address->port);
+ addr4->sin_port = deHostToNetworkOrder16((deUint16)address->port);
addr4->sin_family = AF_INET;
addr4->sin_addr.s_addr = INADDR_ANY;
@@ -348,7 +359,7 @@
return DE_FALSE;
}
- addr6->sin6_port = deHostOrderShortToNetworkOrder((deUint16)address->port);
+ addr6->sin6_port = deHostToNetworkOrder16((deUint16)address->port);
addr6->sin6_family = AF_INET6;
*bsdAddrLen = (NativeSocklen)sizeof(struct sockaddr_in6);
@@ -369,7 +380,7 @@
DE_UNREF(addrLen);
deSocketAddress_setFamily(address, DE_SOCKETFAMILY_INET4);
- deSocketAddress_setPort(address, ntohs(addr4->sin_port));
+ deSocketAddress_setPort(address, (int)deNetworkToHostOrder16((deUint16)addr4->sin_port));
{
char buf[16]; /* Max valid address takes 3*4 + 3 = 15 chars */
@@ -384,7 +395,7 @@
DE_UNREF(addrLen);
deSocketAddress_setFamily(address, DE_SOCKETFAMILY_INET6);
- deSocketAddress_setPort(address, ntohs(addr6->sin6_port));
+ deSocketAddress_setPort(address, (int)deNetworkToHostOrder16((deUint16)addr6->sin6_port));
{
char buf[40]; /* Max valid address takes 8*4 + 7 = 39 chars */
diff --git a/framework/platform/android/tcuAndroidInternals.cpp b/framework/platform/android/tcuAndroidInternals.cpp
index 368f3e0..8590393 100644
--- a/framework/platform/android/tcuAndroidInternals.cpp
+++ b/framework/platform/android/tcuAndroidInternals.cpp
@@ -87,6 +87,12 @@
((ABIFptr)fptr)(memory, param1, param2, param3, param4);
return reinterpret_cast<RT*>(memory);
#else
+ DE_UNREF(fptr);
+ DE_UNREF(memory);
+ DE_UNREF(param1);
+ DE_UNREF(param2);
+ DE_UNREF(param3);
+ DE_UNREF(param4);
TCU_THROW(NotSupportedError, "ABI not supported");
return DE_NULL;
#endif
@@ -112,6 +118,8 @@
typedef void (*ABIFptr)(T* obj);
((ABIFptr)fptr)(obj);
#else
+ DE_UNREF(fptr);
+ DE_UNREF(obj);
TCU_THROW(NotSupportedError, "ABI not supported");
#endif
}
diff --git a/modules/egl/teglNegativeApiTests.cpp b/modules/egl/teglNegativeApiTests.cpp
index 98e3f94..c2b7ebc 100644
--- a/modules/egl/teglNegativeApiTests.cpp
+++ b/modules/egl/teglNegativeApiTests.cpp
@@ -1362,7 +1362,7 @@
log << TestLog::Section("Test1", "EGL_BAD_PARAMETER is generated if engine is not a recognized marking engine and native rendering is supported by current surface");
eglWaitNative(-1);
- expectEitherError(EGL_BAD_PARAMETER, EGL_NONE);
+ expectEitherError(EGL_BAD_PARAMETER, EGL_SUCCESS);
log << TestLog::EndSection;
diff --git a/modules/gles2/functional/es2fFloatStateQueryTests.cpp b/modules/gles2/functional/es2fFloatStateQueryTests.cpp
index 6903adb..32c6439 100644
--- a/modules/gles2/functional/es2fFloatStateQueryTests.cpp
+++ b/modules/gles2/functional/es2fFloatStateQueryTests.cpp
@@ -48,7 +48,8 @@
namespace
{
-const int FLOAT_EXPANSION_E = 0x3FFF;
+const int FLOAT_EXPANSION_E = 0x03FF; // 10 bits error allowed, requires 22 accurate bits
+const int FLOAT_EXPANSION_E_64 = 0x07FF;
GLint64 expandGLFloatToInteger (GLfloat f)
{
@@ -476,8 +477,8 @@
using tcu::TestLog;
using tcu::toHex;
- const GLint64 expectedGLStateMax = expandGLFloatToInteger(reference) + FLOAT_EXPANSION_E;
- const GLint64 expectedGLStateMin = expandGLFloatToInteger(reference) - FLOAT_EXPANSION_E;
+ const GLint64 expectedGLStateMax = expandGLFloatToInteger(reference) + FLOAT_EXPANSION_E_64;
+ const GLint64 expectedGLStateMin = expandGLFloatToInteger(reference) - FLOAT_EXPANSION_E_64;
StateQueryMemoryWriteGuard<GLint64> state;
glGetInteger64v(name, &state);
@@ -503,13 +504,13 @@
const GLint64 referenceAsGLintMin[] =
{
- expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E_64
};
const GLint64 referenceAsGLintMax[] =
{
- expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E_64
};
StateQueryMemoryWriteGuard<GLint64[2]> floatVector2;
@@ -541,17 +542,17 @@
const GLint64 referenceAsGLintMin[] =
{
- expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference2) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference3) - FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference2) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference3) - FLOAT_EXPANSION_E_64
};
const GLint64 referenceAsGLintMax[] =
{
- expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference2) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference3) + FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference2) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference3) + FLOAT_EXPANSION_E_64
};
StateQueryMemoryWriteGuard<GLint64[4]> floatVector4;
diff --git a/modules/gles2/functional/es2fShaderTextureFunctionTests.cpp b/modules/gles2/functional/es2fShaderTextureFunctionTests.cpp
index 4f2366e..b926401 100644
--- a/modules/gles2/functional/es2fShaderTextureFunctionTests.cpp
+++ b/modules/gles2/functional/es2fShaderTextureFunctionTests.cpp
@@ -24,6 +24,7 @@
#include "es2fShaderTextureFunctionTests.hpp"
#include "glsShaderRenderCase.hpp"
#include "glsShaderLibrary.hpp"
+#include "glsTextureTestUtil.hpp"
#include "gluTexture.hpp"
#include "gluTextureUtil.hpp"
#include "tcuTextureUtil.hpp"
@@ -181,12 +182,6 @@
using tcu::IVec3;
using tcu::IVec4;
-inline float computeLodFromDerivates (float dudx, float dvdx, float dudy, float dvdy)
-{
- float p = de::max(deFloatSqrt(dudx*dudx + dvdx*dvdx), deFloatSqrt(dudy*dudy + dvdy*dvdy));
- return deFloatLog2(p);
-}
-
typedef void (*TexEvalFunc) (gls::ShaderEvalContext& c, const TexLookupParams& lookupParams);
inline Vec4 texture2D (const gls::ShaderEvalContext& c, float s, float t, float lod) { return c.textures[0].tex2D->sample(c.textures[0].sampler, s, t, lod); }
@@ -356,7 +351,7 @@
// Compute LOD.
float dudx = (m_lookupSpec.maxCoord[0]-m_lookupSpec.minCoord[0])*proj*(float)m_textureSpec.width / (float)viewportSize[0];
float dvdy = (m_lookupSpec.maxCoord[1]-m_lookupSpec.minCoord[1])*proj*(float)m_textureSpec.height / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, 0.0f, dvdy);
+ m_lookupParams.lod = gls::TextureTestUtil::computeLodFromDerivates(gls::TextureTestUtil::LODMODE_EXACT, dudx, 0.0f, 0.0f, dvdy);
// Append to texture list.
m_textures.push_back(gls::TextureBinding(m_texture2D, m_textureSpec.sampler));
@@ -402,7 +397,7 @@
float dudx = (c10.s - c00.s)*(float)m_textureSpec.width / (float)viewportSize[0];
float dvdy = (c01.t - c00.t)*(float)m_textureSpec.height / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, 0.0f, dvdy);
+ m_lookupParams.lod = gls::TextureTestUtil::computeLodFromDerivates(gls::TextureTestUtil::LODMODE_EXACT, dudx, 0.0f, 0.0f, dvdy);
m_textures.push_back(gls::TextureBinding(m_textureCube, m_textureSpec.sampler));
break;
diff --git a/modules/gles2/functional/es2fTextureCompletenessTests.cpp b/modules/gles2/functional/es2fTextureCompletenessTests.cpp
index 3f06fd5..55443fe 100644
--- a/modules/gles2/functional/es2fTextureCompletenessTests.cpp
+++ b/modules/gles2/functional/es2fTextureCompletenessTests.cpp
@@ -60,7 +60,6 @@
using gls::TextureTestUtil::TextureRenderer;
using gls::TextureTestUtil::computeQuadTexCoord2D;
using gls::TextureTestUtil::computeQuadTexCoordCube;
-using gls::TextureTestUtil::clear;
static const GLenum s_cubeTargets[] =
{
diff --git a/modules/gles2/performance/es2pShaderCompilationCases.cpp b/modules/gles2/performance/es2pShaderCompilationCases.cpp
index 21ec8ef..7a921ba 100644
--- a/modules/gles2/performance/es2pShaderCompilationCases.cpp
+++ b/modules/gles2/performance/es2pShaderCompilationCases.cpp
@@ -285,7 +285,7 @@
static string getShaderInfoLog (const glw::Functions& gl, deUint32 shader)
{
string result;
- int infoLogLen;
+ int infoLogLen = 0;
vector<char> infoLogBuf;
gl.getShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLen);
@@ -299,7 +299,7 @@
static string getProgramInfoLog (const glw::Functions& gl, deUint32 program)
{
string result;
- int infoLogLen;
+ int infoLogLen = 0;
vector<char> infoLogBuf;
gl.getProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLen);
@@ -1710,7 +1710,7 @@
bool ShaderCompilerCase::compileShader (deUint32 shader) const
{
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
- GLint status;
+ GLint status = 0;
gl.compileShader(shader);
gl.getShaderiv(shader, GL_COMPILE_STATUS, &status);
return status != 0;
@@ -1719,7 +1719,7 @@
bool ShaderCompilerCase::linkAndUseProgram (deUint32 program) const
{
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
- GLint linkStatus;
+ GLint linkStatus = 0;
gl.linkProgram(program);
gl.getProgramiv(program, GL_LINK_STATUS, &linkStatus);
diff --git a/modules/gles2/scripts/gen-conversions.py b/modules/gles2/scripts/gen-conversions.py
index c664209..cffcffe 100644
--- a/modules/gles2/scripts/gen-conversions.py
+++ b/modules/gles2/scripts/gen-conversions.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import random
import operator
diff --git a/modules/gles2/scripts/gen-keywords.py b/modules/gles2/scripts/gen-keywords.py
index c036011..3faf836 100644
--- a/modules/gles2/scripts/gen-keywords.py
+++ b/modules/gles2/scripts/gen-keywords.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
from genutil import *
diff --git a/modules/gles2/scripts/gen-qualification_order.py b/modules/gles2/scripts/gen-qualification_order.py
index 327eda7..d35d056 100644
--- a/modules/gles2/scripts/gen-qualification_order.py
+++ b/modules/gles2/scripts/gen-qualification_order.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import itertools
from collections import namedtuple
diff --git a/modules/gles2/scripts/gen-reserved_operators.py b/modules/gles2/scripts/gen-reserved_operators.py
index 11f33f7..4b3fc18 100644
--- a/modules/gles2/scripts/gen-reserved_operators.py
+++ b/modules/gles2/scripts/gen-reserved_operators.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
from genutil import *
diff --git a/modules/gles2/scripts/gen-swizzles.py b/modules/gles2/scripts/gen-swizzles.py
index e0b0a5d..4b9da5e 100644
--- a/modules/gles2/scripts/gen-swizzles.py
+++ b/modules/gles2/scripts/gen-swizzles.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import random
import operator
diff --git a/modules/gles2/tes2CapabilityTests.cpp b/modules/gles2/tes2CapabilityTests.cpp
index b40a763..0e38b38 100644
--- a/modules/gles2/tes2CapabilityTests.cpp
+++ b/modules/gles2/tes2CapabilityTests.cpp
@@ -52,7 +52,7 @@
IterateResult iterate (void)
{
- GLint value;
+ GLint value = 0;
GLU_CHECK_CALL(glGetIntegerv(m_param, &value));
m_testCtx.getLog() << TestLog::Message << glu::getParamQueryStr(m_param) << " = " << value << TestLog::EndMessage;
diff --git a/modules/gles3/functional/es3fDrawTests.cpp b/modules/gles3/functional/es3fDrawTests.cpp
index 54f0ece..f3a1e37 100644
--- a/modules/gles3/functional/es3fDrawTests.cpp
+++ b/modules/gles3/functional/es3fDrawTests.cpp
@@ -780,22 +780,30 @@
tcu::Surface error (image.getWidth(), image.getHeight());
bool isOk = true;
- for (int y = 1; y < image.getHeight()-1; y++)
- for (int x = 1; x < image.getWidth()-1; x++)
+ for (int y = 0; y < image.getHeight(); y++)
+ for (int x = 0; x < image.getWidth(); x++)
{
- const tcu::RGBA pixel = image.getPixel(x, y);
- bool pixelOk = true;
+ if (x == 0 || y == 0 || y + 1 == image.getHeight() || x + 1 == image.getWidth())
+ {
+ // Background color might bleed in at the borders with msaa
+ error.setPixel(x, y, tcu::RGBA(0, 255, 0, 255));
+ }
+ else
+ {
+ const tcu::RGBA pixel = image.getPixel(x, y);
+ bool pixelOk = true;
- // Any pixel with !(G ~= 255) is faulty (not a linear combinations of green and yellow)
- if (de::abs(pixel.getGreen() - 255) > colorThreshold)
- pixelOk = false;
+ // Any pixel with !(G ~= 255) is faulty (not a linear combinations of green and yellow)
+ if (de::abs(pixel.getGreen() - 255) > colorThreshold)
+ pixelOk = false;
- // Any pixel with !(B ~= 0) is faulty (not a linear combinations of green and yellow)
- if (de::abs(pixel.getBlue() - 0) > colorThreshold)
- pixelOk = false;
+ // Any pixel with !(B ~= 0) is faulty (not a linear combinations of green and yellow)
+ if (de::abs(pixel.getBlue() - 0) > colorThreshold)
+ pixelOk = false;
- error.setPixel(x, y, (pixelOk) ? (tcu::RGBA(0, 255, 0, 255)) : (tcu::RGBA(255, 0, 0, 255)));
- isOk = isOk && pixelOk;
+ error.setPixel(x, y, (pixelOk) ? (tcu::RGBA(0, 255, 0, 255)) : (tcu::RGBA(255, 0, 0, 255)));
+ isOk = isOk && pixelOk;
+ }
}
if (!isOk)
diff --git a/modules/gles3/functional/es3fFloatStateQueryTests.cpp b/modules/gles3/functional/es3fFloatStateQueryTests.cpp
index 4c7f7a4..36a0615 100644
--- a/modules/gles3/functional/es3fFloatStateQueryTests.cpp
+++ b/modules/gles3/functional/es3fFloatStateQueryTests.cpp
@@ -48,7 +48,8 @@
namespace
{
-const int FLOAT_EXPANSION_E = 0x03FF;
+const int FLOAT_EXPANSION_E = 0x03FF; // 10 bits error allowed, requires 22 accurate bits
+const int FLOAT_EXPANSION_E_64 = 0x07FF;
GLint64 expandGLFloatToInteger (GLfloat f)
{
@@ -536,8 +537,8 @@
if (!state.verifyValidity(testCtx))
return;
- const GLint64 expectedGLStateMax = expandGLFloatToInteger(reference) + FLOAT_EXPANSION_E;
- const GLint64 expectedGLStateMin = expandGLFloatToInteger(reference) - FLOAT_EXPANSION_E;
+ const GLint64 expectedGLStateMax = expandGLFloatToInteger(reference) + FLOAT_EXPANSION_E_64;
+ const GLint64 expectedGLStateMin = expandGLFloatToInteger(reference) - FLOAT_EXPANSION_E_64;
if (state < expectedGLStateMin || state > expectedGLStateMax)
{
@@ -563,13 +564,13 @@
const GLint64 referenceAsGLintMin[] =
{
- expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E_64
};
const GLint64 referenceAsGLintMax[] =
{
- expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E_64
};
if (floatVector2[0] < referenceAsGLintMin[0] || floatVector2[0] > referenceAsGLintMax[0] ||
@@ -601,17 +602,17 @@
const GLint64 referenceAsGLintMin[] =
{
- expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference2) - FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference3) - FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference2) - FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference3) - FLOAT_EXPANSION_E_64
};
const GLint64 referenceAsGLintMax[] =
{
- expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference2) + FLOAT_EXPANSION_E,
- expandGLFloatToInteger(reference3) + FLOAT_EXPANSION_E
+ expandGLFloatToInteger(reference0) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference1) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference2) + FLOAT_EXPANSION_E_64,
+ expandGLFloatToInteger(reference3) + FLOAT_EXPANSION_E_64
};
if (floatVector4[0] < referenceAsGLintMin[0] || floatVector4[0] > referenceAsGLintMax[0] ||
diff --git a/modules/gles3/functional/es3fNegativeTextureApiTests.cpp b/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
index 93103a8..3164300 100644
--- a/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
+++ b/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
@@ -508,14 +508,20 @@
const GLuint format = s_astcFormats[formatNdx];
const CompressedTexFormat tcuFormat = mapGLCompressedTexFormat(format);
const IVec3 blockPixels = getBlockPixelSize(tcuFormat);
- const size_t blockBytes = getBlockSize(tcuFormat);
- const vector<deUint8> dummyData (blockBytes);
+ {
+ const size_t blockBytes = getBlockSize(tcuFormat);
+ const vector<deUint8> dummyData (blockBytes);
- glCompressedTexImage2D(GL_TEXTURE_2D, 0, format, blockPixels.x(), blockPixels.y(), 0, (int)blockBytes, &dummyData[0]);
- expectError(GL_INVALID_ENUM);
+ glCompressedTexImage2D(GL_TEXTURE_2D, 0, format, blockPixels.x(), blockPixels.y(), 0, (int)blockBytes, &dummyData[0]);
+ expectError(GL_INVALID_ENUM);
+ }
FOR_CUBE_FACES(faceGL,
{
- glCompressedTexImage2D(faceGL, 0, format, blockPixels.x(), blockPixels.y(), 0, (int)blockBytes, &dummyData[0]);
+ const deInt32 cubeSize = blockPixels.x() * blockPixels.y(); // Divisible by the block size and square
+ const size_t blockBytes = getBlockSize(tcuFormat) * cubeSize; // We have a x * y grid of blocks
+ const vector<deUint8> dummyData (blockBytes);
+
+ glCompressedTexImage2D(faceGL, 0, format, cubeSize, cubeSize, 0, (int)blockBytes, &dummyData[0]);
expectError(GL_INVALID_ENUM);
});
}
@@ -2674,7 +2680,7 @@
const GLuint requiredError = m_context.getContextInfo().isExtensionSupported("GL_KHR_texture_compression_astc_ldr") ? GL_INVALID_OPERATION : GL_INVALID_ENUM;
if (requiredError == GL_INVALID_OPERATION)
- m_log.writeMessage("GL_INVALID_OPERATION should be generated if TEXTURE_3D works with LDR ASTC.");
+ m_log.writeMessage("GL_INVALID_OPERATION should be generated if using TEXTURE_3D with LDR ASTC.");
else
m_log.writeMessage("GL_INVALID_ENUM should be generated if no ASTC extensions are present.");
@@ -2988,19 +2994,32 @@
}
else
{
- m_log.writeMessage("GL_INVALID_ENUM should be generated if no ASTC extensions are present.");
+ // In earlier tests both codes are accepted for invalid target format.
+ m_log.writeMessage("GL_INVALID_ENUM or GL_INVALID_VALUE should be generated if no ASTC extensions are present.");
for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(s_astcFormats); formatNdx++)
{
const GLuint format = s_astcFormats[formatNdx];
const CompressedTexFormat tcuFormat = mapGLCompressedTexFormat(format);
const IVec3 blockPixels = getBlockPixelSize(tcuFormat);
+ const deInt32 cubeSize = blockPixels.x() * blockPixels.y(); // Divisible by the block size and square
+ deUint32 texture = 0;
- glTexStorage2D(GL_TEXTURE_2D, 1, format, blockPixels.x(), blockPixels.y());
- expectError(GL_INVALID_ENUM);
+ glGenTextures (1, &texture);
+ glBindTexture (GL_TEXTURE_2D, texture);
- glTexStorage2D(GL_TEXTURE_CUBE_MAP, 1, format, blockPixels.x(), blockPixels.y());
- expectError(GL_INVALID_ENUM);
+ glTexStorage2D (GL_TEXTURE_2D, 1, format, blockPixels.x(), blockPixels.y());
+ expectError (GL_INVALID_ENUM, GL_INVALID_VALUE);
+
+ glDeleteTextures(1, &texture);
+
+ glGenTextures (1, &texture);
+ glBindTexture (GL_TEXTURE_CUBE_MAP, texture);
+
+ glTexStorage2D (GL_TEXTURE_CUBE_MAP, 1, format, cubeSize, cubeSize);
+ expectError (GL_INVALID_ENUM, GL_INVALID_VALUE);
+
+ glDeleteTextures(1, &texture);
}
}
});
@@ -3114,21 +3133,31 @@
}
else
{
- const GLuint requiredError = m_context.getContextInfo().isExtensionSupported("GL_KHR_texture_compression_astc_ldr") ? GL_INVALID_OPERATION : GL_INVALID_ENUM;
-
- if (requiredError == GL_INVALID_OPERATION)
- m_log.writeMessage("GL_INVALID_OPERATION should be generated if TEXTURE_3D works with LDR.");
+ const bool ldrAstcSupported = m_context.getContextInfo().isExtensionSupported("GL_KHR_texture_compression_astc_ldr");
+ if (ldrAstcSupported)
+ m_log.writeMessage("GL_INVALID_OPERATION should be generated if using TEXTURE_3D with LDR.");
else
- m_log.writeMessage("GL_INVALID_ENUM should be generated if no ASTC extensions are present.");
+ // In earlier tests both codes are accepted for invalid target format.
+ m_log.writeMessage("GL_INVALID_ENUM or GL_INVALID_VALUE should be generated if no ASTC extensions are present.");
for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(s_astcFormats); formatNdx++)
{
const GLuint format = s_astcFormats[formatNdx];
const CompressedTexFormat tcuFormat = mapGLCompressedTexFormat(format);
const IVec3 blockPixels = getBlockPixelSize(tcuFormat);
+ deUint32 texture = 0;
- glTexStorage3D(GL_TEXTURE_3D, 1, format, blockPixels.x(), blockPixels.y(), blockPixels.z());
- expectError(requiredError);
+ glGenTextures (1, &texture);
+ glBindTexture (GL_TEXTURE_3D, texture);
+
+ glTexStorage3D (GL_TEXTURE_3D, 1, format, blockPixels.x(), blockPixels.y(), blockPixels.z());
+
+ if (ldrAstcSupported)
+ expectError(GL_INVALID_OPERATION);
+ else
+ expectError(GL_INVALID_ENUM, GL_INVALID_VALUE);
+
+ glDeleteTextures(1, &texture);
}
}
});
diff --git a/modules/gles3/functional/es3fShaderBuiltinVarTests.cpp b/modules/gles3/functional/es3fShaderBuiltinVarTests.cpp
index 7874059..7cb6f4f 100644
--- a/modules/gles3/functional/es3fShaderBuiltinVarTests.cpp
+++ b/modules/gles3/functional/es3fShaderBuiltinVarTests.cpp
@@ -73,7 +73,7 @@
int value = -1;
gl.getIntegerv(pname, &value);
GLU_EXPECT_NO_ERROR(gl.getError(), ("glGetIntegerv(" + glu::getGettableStateStr((int)pname).toString() + ")").c_str());
- TCU_CHECK_MSG(value%4 == 0, ("Expected " + glu::getGettableStateStr((int)pname).toString() + " to be divisible by 4").c_str());
+ // Accept truncated division. According to the spec, the number of vectors is number of components divided by four, plain and simple.
return value/4;
}
diff --git a/modules/gles3/functional/es3fShaderDerivateTests.cpp b/modules/gles3/functional/es3fShaderDerivateTests.cpp
index 508cfc8..ed49d28 100644
--- a/modules/gles3/functional/es3fShaderDerivateTests.cpp
+++ b/modules/gles3/functional/es3fShaderDerivateTests.cpp
@@ -267,7 +267,7 @@
return getSingleULPForExponent(exp, numMantissaBits);
}
-static float convertFloorFlushToZero (float value, int minExponent, int numAccurateBits)
+static float convertFloatFlushToZeroRtn (float value, int minExponent, int numAccurateBits)
{
if (value == 0.0f)
{
@@ -308,9 +308,9 @@
}
}
-static float convertCeilFlushToZero (float value, int minExponent, int numAccurateBits)
+static float convertFloatFlushToZeroRtp (float value, int minExponent, int numAccurateBits)
{
- return -convertFloorFlushToZero(-value, minExponent, numAccurateBits);
+ return -convertFloatFlushToZeroRtn(-value, minExponent, numAccurateBits);
}
static float addErrorUlp (float value, float numUlps, int numMantissaBits)
@@ -489,11 +489,11 @@
// check components separately
for (int c = 0; c < numComponents; ++c)
{
- // interpolation value range
- const tcu::Interval forwardComponent (convertFloorFlushToZero(functionValueForward[c], minExponent, numVaryingSampleBits),
- convertCeilFlushToZero(functionValueForward[c], minExponent, numVaryingSampleBits));
- const tcu::Interval backwardComponent (convertFloorFlushToZero(functionValueBackward[c], minExponent, numVaryingSampleBits),
- convertCeilFlushToZero(functionValueBackward[c], minExponent, numVaryingSampleBits));
+ // Simulate interpolation. Add allowed interpolation error and round to target precision. Allow one half ULP (i.e. correct rounding)
+ const tcu::Interval forwardComponent (convertFloatFlushToZeroRtn(addErrorUlp((float)functionValueForward[c], -0.5f, numVaryingSampleBits), minExponent, numBits),
+ convertFloatFlushToZeroRtp(addErrorUlp((float)functionValueForward[c], +0.5f, numVaryingSampleBits), minExponent, numBits));
+ const tcu::Interval backwardComponent (convertFloatFlushToZeroRtn(addErrorUlp((float)functionValueBackward[c], -0.5f, numVaryingSampleBits), minExponent, numBits),
+ convertFloatFlushToZeroRtp(addErrorUlp((float)functionValueBackward[c], +0.5f, numVaryingSampleBits), minExponent, numBits));
const int maxValueExp = de::max(de::max(tcu::Float32(forwardComponent.lo()).exponent(), tcu::Float32(forwardComponent.hi()).exponent()),
de::max(tcu::Float32(backwardComponent.lo()).exponent(), tcu::Float32(backwardComponent.hi()).exponent()));
@@ -508,12 +508,12 @@
const int numeratorLoBits = de::max(0, numBits - numeratorLoBitsLost);
const int numeratorHiBits = de::max(0, numBits - numeratorHiBitsLost);
- const tcu::Interval numeratorRange (convertFloorFlushToZero((float)numerator.lo(), minExponent, numeratorLoBits),
- convertCeilFlushToZero((float)numerator.hi(), minExponent, numeratorHiBits));
+ const tcu::Interval numeratorRange (convertFloatFlushToZeroRtn((float)numerator.lo(), minExponent, numeratorLoBits),
+ convertFloatFlushToZeroRtp((float)numerator.hi(), minExponent, numeratorHiBits));
const tcu::Interval divisionRange = numeratorRange / 3.0f; // legal sample area is anywhere within this and neighboring pixels (i.e. size = 3)
- const tcu::Interval divisionResultRange (convertFloorFlushToZero(addErrorUlp((float)divisionRange.lo(), -divisionErrorUlps, numBits), minExponent, numBits),
- convertCeilFlushToZero(addErrorUlp((float)divisionRange.hi(), +divisionErrorUlps, numBits), minExponent, numBits));
+ const tcu::Interval divisionResultRange (convertFloatFlushToZeroRtn(addErrorUlp((float)divisionRange.lo(), -divisionErrorUlps, numBits), minExponent, numBits),
+ convertFloatFlushToZeroRtp(addErrorUlp((float)divisionRange.hi(), +divisionErrorUlps, numBits), minExponent, numBits));
const tcu::Interval finalResultRange (divisionResultRange.lo() - surfaceThreshold[c], divisionResultRange.hi() + surfaceThreshold[c]);
if (resultDerivative[c] >= finalResultRange.lo() && resultDerivative[c] <= finalResultRange.hi())
diff --git a/modules/gles3/functional/es3fShaderOperatorTests.cpp b/modules/gles3/functional/es3fShaderOperatorTests.cpp
index f74dc7a..4ead3ea 100644
--- a/modules/gles3/functional/es3fShaderOperatorTests.cpp
+++ b/modules/gles3/functional/es3fShaderOperatorTests.cpp
@@ -1717,7 +1717,7 @@
<< BuiltinFuncInfo("tanh", "tanh", GT, Value(GT, -1.5f, 5.5f), notUsed, notUsed, 0.5f, 0.5f, PRECMASK_LOWP, FLOAT_GENTYPE_FUNCS(tanh) )
<< BuiltinFuncInfo("asinh", "asinh", GT, Value(GT, -1.0f, 1.0f), notUsed, notUsed, 1.0f, 0.0f, PRECMASK_MEDIUMP_HIGHP, FLOAT_GENTYPE_FUNCS(asinh) )
<< BuiltinFuncInfo("acosh", "acosh", GT, Value(GT, 1.0f, 2.2f), notUsed, notUsed, 1.0f, 0.0f, PRECMASK_MEDIUMP_HIGHP, FLOAT_GENTYPE_FUNCS(acosh) )
- << BuiltinFuncInfo("atanh", "atanh", GT, Value(GT, -1.0f, 1.0f), notUsed, notUsed, 1.0f, 0.0f, PRECMASK_MEDIUMP_HIGHP, FLOAT_GENTYPE_FUNCS(atanh) )
+ << BuiltinFuncInfo("atanh", "atanh", GT, Value(GT, -0.99f, 0.99f), notUsed, notUsed, 1.0f, 0.0f, PRECMASK_MEDIUMP_HIGHP, FLOAT_GENTYPE_FUNCS(atanh) )
);
// 8.2 Exponential Functions.
diff --git a/modules/gles3/functional/es3fShaderPrecisionTests.cpp b/modules/gles3/functional/es3fShaderPrecisionTests.cpp
index a030b32..2ca18da 100644
--- a/modules/gles3/functional/es3fShaderPrecisionTests.cpp
+++ b/modules/gles3/functional/es3fShaderPrecisionTests.cpp
@@ -331,8 +331,8 @@
{
const deUint64 refBits = tcu::Float64(reference).bits();
const deUint64 resBits = tcu::Float64(result).bits();
- const deUint64 accurateRefBits = maskBits < 32 ? refBits >> maskBits : 0u;
- const deUint64 accurateResBits = maskBits < 32 ? resBits >> maskBits : 0u;
+ const deUint64 accurateRefBits = maskBits < 64 ? refBits >> (deUint64)maskBits : 0u;
+ const deUint64 accurateResBits = maskBits < 64 ? resBits >> (deUint64)maskBits : 0u;
const deUint64 ulpDiff = (deUint64)de::abs((deInt64)accurateRefBits - (deInt64)accurateResBits);
if (ulpDiff > (deUint64)roundingUlpError)
diff --git a/modules/gles3/functional/es3fShaderTextureFunctionTests.cpp b/modules/gles3/functional/es3fShaderTextureFunctionTests.cpp
index b447370..c6e6735 100644
--- a/modules/gles3/functional/es3fShaderTextureFunctionTests.cpp
+++ b/modules/gles3/functional/es3fShaderTextureFunctionTests.cpp
@@ -24,6 +24,7 @@
#include "es3fShaderTextureFunctionTests.hpp"
#include "glsShaderRenderCase.hpp"
#include "glsShaderLibrary.hpp"
+#include "glsTextureTestUtil.hpp"
#include "gluTexture.hpp"
#include "gluTextureUtil.hpp"
#include "gluPixelTransfer.hpp"
@@ -50,6 +51,8 @@
namespace
{
+using gls::TextureTestUtil::computeLodFromDerivates;
+
enum Function
{
FUNCTION_TEXTURE = 0, //!< texture(), textureOffset()
@@ -237,86 +240,20 @@
using tcu::IVec3;
using tcu::IVec4;
-enum LodMode
-{
- LODMODE_EXACT = 0,
- LODMODE_MIN_BOUND,
- LODMODE_MAX_BOUND,
-
- LODMODE_LAST
-};
-
-static const LodMode DEFAULT_LOD_MODE = LODMODE_EXACT;
-
-inline float computeLodFromDerivates (float dudx, float dvdx, float dudy, float dvdy)
-{
- const LodMode mode = DEFAULT_LOD_MODE;
- float p;
-
- switch (mode)
- {
- case LODMODE_EXACT:
- p = de::max(deFloatSqrt(dudx*dudx + dvdx*dvdx), deFloatSqrt(dudy*dudy + dvdy*dvdy));
- break;
-
- case LODMODE_MIN_BOUND:
- case LODMODE_MAX_BOUND:
- {
- float mu = de::max(deFloatAbs(dudx), deFloatAbs(dudy));
- float mv = de::max(deFloatAbs(dvdx), deFloatAbs(dvdy));
-
- p = mode == LODMODE_MIN_BOUND ? de::max(mu, mv) : mu + mv;
- break;
- }
-
- default:
- DE_ASSERT(DE_FALSE);
- }
-
- return deFloatLog2(p);
-}
-
-inline float computeLodFromDerivates (float dudx, float dvdx, float dwdx, float dudy, float dvdy, float dwdy)
-{
- const LodMode mode = DEFAULT_LOD_MODE;
- float p;
-
- switch (mode)
- {
- case LODMODE_EXACT:
- p = de::max(deFloatSqrt(dudx*dudx + dvdx*dvdx + dwdx*dwdx), deFloatSqrt(dudy*dudy + dvdy*dvdy + dwdy*dwdy));
- break;
-
- case LODMODE_MIN_BOUND:
- case LODMODE_MAX_BOUND:
- {
- float mu = de::max(deFloatAbs(dudx), deFloatAbs(dudy));
- float mv = de::max(deFloatAbs(dvdx), deFloatAbs(dvdy));
- float mw = de::max(deFloatAbs(dwdx), deFloatAbs(dwdy));
-
- p = mode == LODMODE_MIN_BOUND ? de::max(de::max(mu, mv), mw) : (mu + mv + mw);
- break;
- }
-
- default:
- DE_ASSERT(DE_FALSE);
- }
-
- return deFloatLog2(p);
-}
+static const gls::TextureTestUtil::LodMode DEFAULT_LOD_MODE = gls::TextureTestUtil::LODMODE_EXACT;
inline float computeLodFromGrad2D (const gls::ShaderEvalContext& c)
{
float w = (float)c.textures[0].tex2D->getWidth();
float h = (float)c.textures[0].tex2D->getHeight();
- return computeLodFromDerivates(c.in[1].x()*w, c.in[1].y()*h, c.in[2].x()*w, c.in[2].y()*h);
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*w, c.in[1].y()*h, c.in[2].x()*w, c.in[2].y()*h);
}
inline float computeLodFromGrad2DArray (const gls::ShaderEvalContext& c)
{
float w = (float)c.textures[0].tex2DArray->getWidth();
float h = (float)c.textures[0].tex2DArray->getHeight();
- return computeLodFromDerivates(c.in[1].x()*w, c.in[1].y()*h, c.in[2].x()*w, c.in[2].y()*h);
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*w, c.in[1].y()*h, c.in[2].x()*w, c.in[2].y()*h);
}
inline float computeLodFromGrad3D (const gls::ShaderEvalContext& c)
@@ -324,7 +261,7 @@
float w = (float)c.textures[0].tex3D->getWidth();
float h = (float)c.textures[0].tex3D->getHeight();
float d = (float)c.textures[0].tex3D->getDepth();
- return computeLodFromDerivates(c.in[1].x()*w, c.in[1].y()*h, c.in[1].z()*d, c.in[2].x()*w, c.in[2].y()*h, c.in[2].z()*d);
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*w, c.in[1].y()*h, c.in[1].z()*d, c.in[2].x()*w, c.in[2].y()*h, c.in[2].z()*d);
}
inline float computeLodFromGradCube (const gls::ShaderEvalContext& c)
@@ -334,7 +271,7 @@
float d = (float)c.textures[0].texCube->getSize();
float s = d/(2.0f*m);
float t = d/(2.0f*m);
- return computeLodFromDerivates(c.in[1].x()*s, c.in[1].y()*t, c.in[2].x()*s, c.in[2].y()*t);
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*s, c.in[1].y()*t, c.in[2].x()*s, c.in[2].y()*t);
}
typedef void (*TexEvalFunc) (gls::ShaderEvalContext& c, const TexLookupParams& lookupParams);
@@ -660,7 +597,7 @@
// Compute LOD.
float dudx = (m_lookupSpec.maxCoord[0]-m_lookupSpec.minCoord[0])*proj*(float)m_textureSpec.width / (float)viewportSize[0];
float dvdy = (m_lookupSpec.maxCoord[1]-m_lookupSpec.minCoord[1])*proj*(float)m_textureSpec.height / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, 0.0f, dvdy);
+ m_lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f, 0.0f, dvdy);
// Append to texture list.
m_textures.push_back(gls::TextureBinding(m_texture2D, m_textureSpec.sampler));
@@ -719,7 +656,7 @@
float dudx = (c10.s - c00.s)*(float)m_textureSpec.width / (float)viewportSize[0];
float dvdy = (c01.t - c00.t)*(float)m_textureSpec.height / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, 0.0f, dvdy);
+ m_lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f, 0.0f, dvdy);
m_textures.push_back(gls::TextureBinding(m_textureCube, m_textureSpec.sampler));
break;
@@ -754,7 +691,7 @@
// Compute LOD.
float dudx = (m_lookupSpec.maxCoord[0]-m_lookupSpec.minCoord[0])*proj*(float)m_textureSpec.width / (float)viewportSize[0];
float dvdy = (m_lookupSpec.maxCoord[1]-m_lookupSpec.minCoord[1])*proj*(float)m_textureSpec.height / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, 0.0f, dvdy);
+ m_lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f, 0.0f, dvdy);
// Append to texture list.
m_textures.push_back(gls::TextureBinding(m_texture2DArray, m_textureSpec.sampler));
@@ -786,7 +723,7 @@
float dvdy = (m_lookupSpec.maxCoord[1]-m_lookupSpec.minCoord[1])*proj*(float)m_textureSpec.height / (float)viewportSize[1];
float dwdx = (m_lookupSpec.maxCoord[2]-m_lookupSpec.minCoord[2])*0.5f*proj*(float)m_textureSpec.depth / (float)viewportSize[0];
float dwdy = (m_lookupSpec.maxCoord[2]-m_lookupSpec.minCoord[2])*0.5f*proj*(float)m_textureSpec.depth / (float)viewportSize[1];
- m_lookupParams.lod = computeLodFromDerivates(dudx, 0.0f, dwdx, 0.0f, dvdy, dwdy);
+ m_lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f, dwdx, 0.0f, dvdy, dwdy);
// Append to texture list.
m_textures.push_back(gls::TextureBinding(m_texture3D, m_textureSpec.sampler));
diff --git a/modules/gles3/functional/es3fSyncTests.cpp b/modules/gles3/functional/es3fSyncTests.cpp
index 8f9c0d0..e97e1ac 100644
--- a/modules/gles3/functional/es3fSyncTests.cpp
+++ b/modules/gles3/functional/es3fSyncTests.cpp
@@ -282,17 +282,17 @@
// Fence sync tests.
addChild(new FenceSyncCase(m_context, "wait_sync_smalldraw", "", 10, COMMAND_WAIT_SYNC, 0, GL_TIMEOUT_IGNORED, 0));
- addChild(new FenceSyncCase(m_context, "wait_sync_largedraw", "", 100000, COMMAND_WAIT_SYNC, 0, GL_TIMEOUT_IGNORED, 0));
+ addChild(new FenceSyncCase(m_context, "wait_sync_largedraw", "", 10000, COMMAND_WAIT_SYNC, 0, GL_TIMEOUT_IGNORED, 0));
addChild(new FenceSyncCase(m_context, "client_wait_sync_smalldraw", "", 10, COMMAND_CLIENT_WAIT_SYNC, 0, 0, 0));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_largedraw", "", 100000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, 0));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_largedraw", "", 10000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, 0));
addChild(new FenceSyncCase(m_context, "client_wait_sync_timeout_smalldraw", "", 10, COMMAND_CLIENT_WAIT_SYNC, 0, 10, 0));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_timeout_largedraw", "", 100000, COMMAND_CLIENT_WAIT_SYNC, 0, 10, 0));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_timeout_largedraw", "", 10000, COMMAND_CLIENT_WAIT_SYNC, 0, 10, 0));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_flush_auto", "", 100000, COMMAND_CLIENT_WAIT_SYNC, GL_SYNC_FLUSH_COMMANDS_BIT, 0, 0));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_flush_manual", "", 100000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, CASE_FLUSH_BEFORE_WAIT));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_noflush", "", 100000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, 0));
- addChild(new FenceSyncCase(m_context, "client_wait_sync_finish", "", 100000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, CASE_FINISH_BEFORE_WAIT));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_flush_auto", "", 10000, COMMAND_CLIENT_WAIT_SYNC, GL_SYNC_FLUSH_COMMANDS_BIT, 0, 0));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_flush_manual", "", 10000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, CASE_FLUSH_BEFORE_WAIT));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_noflush", "", 10000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, 0));
+ addChild(new FenceSyncCase(m_context, "client_wait_sync_finish", "", 10000, COMMAND_CLIENT_WAIT_SYNC, 0, 0, CASE_FINISH_BEFORE_WAIT));
}
} // Functional
diff --git a/modules/gles3/functional/es3fTextureSpecificationTests.cpp b/modules/gles3/functional/es3fTextureSpecificationTests.cpp
index 92765ab..8e5b0ec 100644
--- a/modules/gles3/functional/es3fTextureSpecificationTests.cpp
+++ b/modules/gles3/functional/es3fTextureSpecificationTests.cpp
@@ -658,7 +658,7 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(m_format, m_dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -713,7 +713,7 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(m_format, m_dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -757,9 +757,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
@@ -796,9 +796,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_3D, tex);
@@ -849,7 +849,7 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(m_format, m_dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -909,7 +909,7 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(m_format, m_dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -2128,7 +2128,7 @@
tcu::TextureFormat fmt = glu::mapGLInternalFormat(m_internalFormat);
glu::TransferFormat transferFmt = glu::getTransferFormat(fmt);
deUint32 tex = 0;
- tcu::TextureLevel levelData (fmt);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -2170,7 +2170,7 @@
tcu::TextureFormat fmt = glu::mapGLInternalFormat(m_internalFormat);
glu::TransferFormat transferFmt = glu::getTransferFormat(fmt);
deUint32 tex = 0;
- tcu::TextureLevel levelData (fmt);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
de::Random rnd (deStringHash(getName()));
glGenTextures(1, &tex);
@@ -2214,9 +2214,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures (1, &tex);
glBindTexture (GL_TEXTURE_2D_ARRAY, tex);
@@ -2255,9 +2255,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures (1, &tex);
glBindTexture (GL_TEXTURE_3D, tex);
@@ -3032,7 +3032,7 @@
{
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
@@ -3079,7 +3079,7 @@
{
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
@@ -3126,7 +3126,7 @@
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
de::Random rnd (deStringHash(getName()));
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
@@ -3196,7 +3196,7 @@
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
de::Random rnd (deStringHash(getName()));
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
diff --git a/modules/gles3/performance/es3pShaderCompilationCases.cpp b/modules/gles3/performance/es3pShaderCompilationCases.cpp
index c3ad27d..8c80cd7 100644
--- a/modules/gles3/performance/es3pShaderCompilationCases.cpp
+++ b/modules/gles3/performance/es3pShaderCompilationCases.cpp
@@ -285,7 +285,7 @@
static string getShaderInfoLog (const glw::Functions& gl, deUint32 shader)
{
string result;
- int infoLogLen;
+ int infoLogLen = 0;
vector<char> infoLogBuf;
gl.getShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLen);
@@ -299,7 +299,7 @@
static string getProgramInfoLog (const glw::Functions& gl, deUint32 program)
{
string result;
- int infoLogLen;
+ int infoLogLen = 0;
vector<char> infoLogBuf;
gl.getProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLen);
@@ -1730,7 +1730,7 @@
bool ShaderCompilerCase::compileShader (deUint32 shader) const
{
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
- GLint status;
+ GLint status = 0;
gl.compileShader(shader);
gl.getShaderiv(shader, GL_COMPILE_STATUS, &status);
return status != 0;
@@ -1739,7 +1739,7 @@
bool ShaderCompilerCase::linkAndUseProgram (deUint32 program) const
{
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
- GLint linkStatus;
+ GLint linkStatus = 0;
gl.linkProgram(program);
gl.getProgramiv(program, GL_LINK_STATUS, &linkStatus);
diff --git a/modules/gles3/scripts/gen-conversions.py b/modules/gles3/scripts/gen-conversions.py
index 1acc046..fa1e90b 100644
--- a/modules/gles3/scripts/gen-conversions.py
+++ b/modules/gles3/scripts/gen-conversions.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import random
import operator
diff --git a/modules/gles3/scripts/gen-invalid-texture-funcs.py b/modules/gles3/scripts/gen-invalid-texture-funcs.py
index 9cc5f99..28aa9fb 100644
--- a/modules/gles3/scripts/gen-invalid-texture-funcs.py
+++ b/modules/gles3/scripts/gen-invalid-texture-funcs.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import string
from genutil import *
diff --git a/modules/gles3/scripts/gen-keywords.py b/modules/gles3/scripts/gen-keywords.py
index 04876de..09d486a 100644
--- a/modules/gles3/scripts/gen-keywords.py
+++ b/modules/gles3/scripts/gen-keywords.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
from genutil import *
diff --git a/modules/gles3/scripts/gen-qualification_order.py b/modules/gles3/scripts/gen-qualification_order.py
index 4bb5fc6..a57489a 100644
--- a/modules/gles3/scripts/gen-qualification_order.py
+++ b/modules/gles3/scripts/gen-qualification_order.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import itertools
from collections import namedtuple
diff --git a/modules/gles3/scripts/gen-swizzles.py b/modules/gles3/scripts/gen-swizzles.py
index 70ba842..7b0bd78 100644
--- a/modules/gles3/scripts/gen-swizzles.py
+++ b/modules/gles3/scripts/gen-swizzles.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import random
import operator
diff --git a/modules/gles3/scripts/gen-uniform-blocks.py b/modules/gles3/scripts/gen-uniform-blocks.py
index f2ad3d9..969a9f6 100644
--- a/modules/gles3/scripts/gen-uniform-blocks.py
+++ b/modules/gles3/scripts/gen-uniform-blocks.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
from genutil import *
allCases = []
diff --git a/modules/gles3/scripts/genutil.py b/modules/gles3/scripts/genutil.py
index d17f811..d69225e 100644
--- a/modules/gles3/scripts/genutil.py
+++ b/modules/gles3/scripts/genutil.py
@@ -364,6 +364,12 @@
def __init__(self):
pass
+ def __eq__(self, other):
+ return self.isEqual(other)
+
+ def __ne__(self, other):
+ return not self.isEqual(other)
+
class Vec2(Vec):
def __init__(self, x, y):
assert(x.__class__ == y.__class__)
diff --git a/modules/gles31/functional/es31fCopyImageTests.cpp b/modules/gles31/functional/es31fCopyImageTests.cpp
index 98c10af..a82b113 100644
--- a/modules/gles31/functional/es31fCopyImageTests.cpp
+++ b/modules/gles31/functional/es31fCopyImageTests.cpp
@@ -657,16 +657,7 @@
{
const tcu::ConstPixelBufferAccess texelAccess (format, 1, 1, 1, &(texelBlock[0]));
- if (isFloatFormat(info.getFormat()))
- {
- const tcu::Vec4 color = texelAccess.getPixel(0, 0, 0);
-
- gl.clearBufferfv(GL_COLOR, 0, (const float*)&color);
- GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to clear renderbuffer.");
-
- tcu::clear(refAccess, (tcu::isSRGB(format) ? tcu::linearToSRGB(color) : color));
- }
- else if (isIntFormat(info.getFormat()))
+ if (isIntFormat(info.getFormat()))
{
const tcu::IVec4 color = texelAccess.getPixelInt(0, 0, 0);
@@ -688,13 +679,27 @@
}
else
{
- const tcu::Vec4 color = texelAccess.getPixel(0, 0, 0);
+ const tcu::Vec4 rawColor = texelAccess.getPixel(0, 0, 0);
+ const tcu::Vec4 linearColor = (tcu::isSRGB(format) ? tcu::sRGBToLinear(rawColor) : rawColor);
- gl.clearColor(color.x(), color.y(), color.z(), color.w());
- gl.clear(GL_COLOR_BUFFER_BIT);
+ // rawColor bit pattern has been chosen to be "safe" in the destination format. For sRGB
+ // formats, the clear color is in linear space. Since we want the resulting bit pattern
+ // to be safe after implementation linear->sRGB transform, we must apply the inverting
+ // transform to the clear color.
+
+ if (isFloatFormat(info.getFormat()))
+ {
+ gl.clearBufferfv(GL_COLOR, 0, (const float*)&linearColor);
+ }
+ else
+ {
+ // fixed-point
+ gl.clearColor(linearColor.x(), linearColor.y(), linearColor.z(), linearColor.w());
+ gl.clear(GL_COLOR_BUFFER_BIT);
+ }
GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to clear renderbuffer.");
- tcu::clear(refAccess, (tcu::isSRGB(format) ? tcu::linearToSRGB(color) : color));
+ tcu::clear(refAccess, rawColor);
}
}
}
@@ -902,6 +907,12 @@
tcu::Surface renderedFrame (viewport.width, viewport.height);
tcu::Surface referenceFrame (viewport.width, viewport.height);
+ renderParams.baseLevel = level;
+ renderParams.maxLevel = level;
+
+ gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, level);
+ gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level);
+
computeQuadTexCoord2D(texCoord, tcu::Vec2(0.0f, 0.0f), tcu::Vec2(1.0f, 1.0f));
// Setup base viewport.
@@ -922,6 +933,9 @@
log << TestLog::Message << "Image comparison of level " << level << " passed." << TestLog::EndMessage;
}
+ gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
+ gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1000);
+
gl.bindTexture(GL_TEXTURE_2D, 0);
GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to unbind texture.");
}
@@ -1043,6 +1057,12 @@
{
const IVec3 levelSize = getLevelSize(info.getTarget(), info.getSize(), level);
+ renderParams.baseLevel = level;
+ renderParams.maxLevel = level;
+
+ gl.texParameteri(GL_TEXTURE_3D, GL_TEXTURE_BASE_LEVEL, level);
+ gl.texParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAX_LEVEL, level);
+
for (int slice = 0; slice < levelSize.z(); slice++)
{
const RandomViewport viewport (renderContext.getRenderTarget(), levelSize.x(), levelSize.y(), rng.getUint32());
@@ -1072,6 +1092,9 @@
}
}
+ gl.texParameteri(GL_TEXTURE_3D, GL_TEXTURE_BASE_LEVEL, 0);
+ gl.texParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAX_LEVEL, 1000);
+
gl.bindTexture(GL_TEXTURE_3D, 0);
GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to unbind texture.");
}
@@ -1147,6 +1170,12 @@
if (levelSize.x() < 4 && levelSize.y() < 4)
continue;
+ renderParams.baseLevel = level;
+ renderParams.maxLevel = level;
+
+ gl.texParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_BASE_LEVEL, level);
+ gl.texParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_LEVEL, level);
+
for (int face = 0; face < 6; face++)
{
const RandomViewport viewport (renderContext.getRenderTarget(), levelSize.x(), levelSize.y(), rng.getUint32());
@@ -1176,6 +1205,9 @@
}
}
+ gl.texParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_BASE_LEVEL, 0);
+ gl.texParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_LEVEL, 1000);
+
gl.bindTexture(GL_TEXTURE_CUBE_MAP, 0);
GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to unbind texture.");
}
@@ -1307,6 +1339,12 @@
{
const IVec3 levelSize = getLevelSize(info.getTarget(), info.getSize(), level);
+ renderParams.baseLevel = level;
+ renderParams.maxLevel = level;
+
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_BASE_LEVEL, level);
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAX_LEVEL, level);
+
for (int layer = 0; layer < levelSize.z(); layer++)
{
const RandomViewport viewport (renderContext.getRenderTarget(), levelSize.x(), levelSize.y(), rng.getUint32());
@@ -1335,6 +1373,9 @@
}
}
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_BASE_LEVEL, 0);
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAX_LEVEL, 1000);
+
gl.bindTexture(GL_TEXTURE_2D_ARRAY, 0);
GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to unbind texture.");
}
@@ -1760,13 +1801,16 @@
const IVec3& dstPos_,
int dstLevel_,
- const IVec3& size_)
+ const IVec3& size_,
+ const IVec3& dstSize_)
: srcPos (srcPos_)
, srcLevel (srcLevel_)
, dstPos (dstPos_)
, dstLevel (dstLevel_)
+
, size (size_)
+ , dstSize (dstSize_)
{
}
@@ -1775,6 +1819,7 @@
IVec3 dstPos;
int dstLevel;
IVec3 size;
+ IVec3 dstSize; //!< used only for logging
};
int getLastFullLevel (const ImageInfo& info)
@@ -1831,7 +1876,7 @@
const int copyBlockHeight = de::max((2 * (maxCopyBlockSize.y() / 4)) - 1, 1);
const int copyBlockDepth = de::max((2 * (maxCopyBlockSize.z() / 4)) - 1, 1);
- // Copy NPOT block from (0,0,0) to other corner on dst
+ // Copy NPOT block to (0,0,0) from other corner on src
{
const IVec3 copyBlockSize (copyBlockWidth, copyBlockHeight, copyBlockDepth);
const IVec3 srcBlockPos (srcCompleteBlockSize - copyBlockSize);
@@ -1839,12 +1884,13 @@
const IVec3 srcPos (srcBlockPos * srcBlockPixelSize);
const IVec3 dstPos (dstBlockPos * dstBlockPixelSize);
- const IVec3 copySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 srcCopySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 dstCopySize (copyBlockSize * dstBlockPixelSize);
- copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, copySize));
+ copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, srcCopySize, dstCopySize));
}
- // Copy NPOT block to (0,0,0) from other corner on src
+ // Copy NPOT block from (0,0,0) to other corner on dst
{
const IVec3 copyBlockSize (copyBlockWidth, copyBlockHeight, copyBlockDepth);
const IVec3 srcBlockPos (0, 0, 0);
@@ -1852,12 +1898,13 @@
const IVec3 srcPos (srcBlockPos * srcBlockPixelSize);
const IVec3 dstPos (dstBlockPos * dstBlockPixelSize);
- const IVec3 copySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 srcCopySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 dstCopySize (copyBlockSize * dstBlockPixelSize);
- copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, copySize));
+ copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, srcCopySize, dstCopySize));
}
- // Copy NPOT block to (0,0,0) from other corner on src
+ // Copy NPOT block near the corner with high coordinates
{
const IVec3 copyBlockSize (copyBlockWidth, copyBlockHeight, copyBlockDepth);
const IVec3 srcBlockPos (tcu::max((srcCompleteBlockSize / 4) * 4 - copyBlockSize, IVec3(0)));
@@ -1865,9 +1912,10 @@
const IVec3 srcPos (srcBlockPos * srcBlockPixelSize);
const IVec3 dstPos (dstBlockPos * dstBlockPixelSize);
- const IVec3 copySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 srcCopySize (copyBlockSize * srcBlockPixelSize);
+ const IVec3 dstCopySize (copyBlockSize * dstBlockPixelSize);
- copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, copySize));
+ copies.push_back(Copy(srcPos, srcLevel, dstPos, dstLevel, srcCopySize, dstCopySize));
}
}
}
@@ -1889,8 +1937,12 @@
{
const Copy& copy = copies[copyNdx];
- log << TestLog::Message << "Copying block " << copy.size << " from source image position " << copy.srcPos << " and mipmap level " << copy.srcLevel
- << " to destination image position " << copy.dstPos << " and mipmap level " << copy.dstLevel << TestLog::EndMessage;
+ log << TestLog::Message
+ << "Copying area with size " << copy.size
+ << " from source image position " << copy.srcPos << " and mipmap level " << copy.srcLevel
+ << " to destination image position " << copy.dstPos << " and mipmap level " << copy.dstLevel << ". "
+ << "Size in destination format is " << copy.dstSize
+ << TestLog::EndMessage;
copyImage(gl, *dstImage, dstImageLevels, m_dstImageInfo, copy.dstLevel, copy.dstPos,
*srcImage, srcImageLevels, m_srcImageInfo, copy.srcLevel, copy.srcPos, copy.size);
diff --git a/modules/gles31/functional/es31fDebugTests.cpp b/modules/gles31/functional/es31fDebugTests.cpp
index 2c7370b..e8acd2c 100644
--- a/modules/gles31/functional/es31fDebugTests.cpp
+++ b/modules/gles31/functional/es31fDebugTests.cpp
@@ -1644,8 +1644,8 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
const char* const msg = "This is a debug label";
GLuint object = 0;
+ int outlen = -1;
char buffer[64];
- int outlen = 0;
switch(m_identifier)
{
@@ -1787,8 +1787,8 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
const char* const msg = "This is a debug label";
+ int outlen = -1;
char buffer[64];
- int outlen = 0;
glw::GLsync sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLU_EXPECT_NO_ERROR(gl.getError(), "fenceSync");
@@ -1835,10 +1835,10 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
char buffer[64];
- int outlen;
sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "fenceSync");
@@ -1917,10 +1917,10 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
const char* const msg = "This is a debug label";
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
char buffer[64];
- int outlen;
sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "fenceSync");
@@ -2011,10 +2011,10 @@
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
const char* const msg = "This is a debug label";
const char* const clipMsg = "This is a de";
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
char buffer[64];
- int outlen;
sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "fenceSync");
@@ -2120,10 +2120,10 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
const char* const msg = "This is a debug label";
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
char buffer[64];
- int outlen;
sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "fenceSync");
@@ -2349,9 +2349,9 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
int maxLabelLen = -1;
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
- int outlen;
gl.getIntegerv(GL_MAX_LABEL_LENGTH, &maxLabelLen);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "GL_MAX_LABEL_LENGTH");
@@ -2476,9 +2476,9 @@
const glw::Functions& gl = m_context.getRenderContext().getFunctions();
tcu::ResultCollector result (m_testCtx.getLog(), " // ERROR: ");
const char* const msg = "This is a debug label";
+ int outlen = -1;
GLuint shader;
glw::GLsync sync;
- int outlen;
sync = gl.fenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
GLS_COLLECT_GL_ERROR(result, gl.getError(), "fenceSync");
diff --git a/modules/gles31/functional/es31fGeometryShaderTests.cpp b/modules/gles31/functional/es31fGeometryShaderTests.cpp
index ae92528..2f4e60c 100644
--- a/modules/gles31/functional/es31fGeometryShaderTests.cpp
+++ b/modules/gles31/functional/es31fGeometryShaderTests.cpp
@@ -1940,29 +1940,37 @@
const int colorComponentThreshold = 20;
bool testResult = true;
- for (int x = 1; x + 1 < m_viewportSize.x(); ++x)
- for (int y = 1; y + 1 < m_viewportSize.y(); ++y)
+ for (int x = 0; x < m_viewportSize.x(); ++x)
+ for (int y = 0; y < m_viewportSize.y(); ++y)
{
- bool found = false;
- const tcu::RGBA refcolor = m_refResult->getPixel(x, y);
-
- // Got to find similar pixel near this pixel (3x3 kernel)
- for (int dx = -1; dx <= 1; ++dx)
- for (int dy = -1; dy <= 1; ++dy)
+ if (x == 0 || y == 0 || x + 1 == m_viewportSize.x() || y + 1 == m_viewportSize.y())
{
- const tcu::RGBA testColor = m_glResult->getPixel(x + dx, y + dy);
- const tcu::IVec4 colDiff = tcu::abs(testColor.toIVec() - refcolor.toIVec());
-
- const int maxColDiff = de::max(de::max(colDiff.x(), colDiff.y()), colDiff.z()); // check RGB channels
-
- if (maxColDiff <= colorComponentThreshold)
- found = true;
+ // Mark edge pixels as correct since their neighbourhood is undefined
+ errorMask.setPixel(x, y, green);
}
+ else
+ {
+ const tcu::RGBA refcolor = m_refResult->getPixel(x, y);
+ bool found = false;
- if (!found)
- testResult = false;
+ // Got to find similar pixel near this pixel (3x3 kernel)
+ for (int dx = -1; dx <= 1; ++dx)
+ for (int dy = -1; dy <= 1; ++dy)
+ {
+ const tcu::RGBA testColor = m_glResult->getPixel(x + dx, y + dy);
+ const tcu::IVec4 colDiff = tcu::abs(testColor.toIVec() - refcolor.toIVec());
- errorMask.setPixel(x, y, (found) ? (green) : (red));
+ const int maxColDiff = de::max(de::max(colDiff.x(), colDiff.y()), colDiff.z()); // check RGB channels
+
+ if (maxColDiff <= colorComponentThreshold)
+ found = true;
+ }
+
+ if (!found)
+ testResult = false;
+
+ errorMask.setPixel(x, y, (found) ? (green) : (red));
+ }
}
if (testResult)
diff --git a/modules/gles31/functional/es31fIntegerStateQueryTests.cpp b/modules/gles31/functional/es31fIntegerStateQueryTests.cpp
index 24a5f25..775b7d1 100644
--- a/modules/gles31/functional/es31fIntegerStateQueryTests.cpp
+++ b/modules/gles31/functional/es31fIntegerStateQueryTests.cpp
@@ -369,14 +369,19 @@
gl.enableLogging(true);
{
- const tcu::ScopedLogSection section(m_testCtx.getLog(), "Minimum", "Minimum is " + de::toString(m_minValue));
+ const tcu::ScopedLogSection section(m_testCtx.getLog(), "Minimum", "Specified minimum is " + de::toString(m_minValue));
verifyStateIntegerMin(result, gl, m_target, m_minValue, m_verifierType);
}
{
- const tcu::ScopedLogSection section(m_testCtx.getLog(), "Ties", "Tied to " + de::toString(glu::getGettableStateStr(m_tiedTo)));
+ const tcu::ScopedLogSection section (m_testCtx.getLog(), "Ties", "The limit is tied to the value of " + de::toString(glu::getGettableStateStr(m_tiedTo)));
+ StateQueryMemoryWriteGuard<glw::GLint> tiedToValue;
- verifyStateIntegerEqualToOther(result, gl, m_target, m_tiedTo, m_verifierType);
+ gl.glGetIntegerv(m_tiedTo, &tiedToValue);
+ GLS_COLLECT_GL_ERROR(result, gl.glGetError(), "glGetIntegerv");
+
+ if (tiedToValue.verifyValidity(result))
+ verifyStateIntegerMin(result, gl, m_target, tiedToValue, m_verifierType);
}
result.setTestContextResult(m_testCtx);
diff --git a/modules/gles31/functional/es31fProgramInterfaceQueryTestCase.cpp b/modules/gles31/functional/es31fProgramInterfaceQueryTestCase.cpp
index 778ef6f..3f061ac 100644
--- a/modules/gles31/functional/es31fProgramInterfaceQueryTestCase.cpp
+++ b/modules/gles31/functional/es31fProgramInterfaceQueryTestCase.cpp
@@ -2631,6 +2631,7 @@
{ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS, usage.numSamplers },
{ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS, usage.numAtomicCounterBuffers },
{ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, usage.numAtomicCounters },
+ { GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, usage.numImages },
{ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, usage.numShaderStorageBlocks },
};
@@ -2660,6 +2661,7 @@
{ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS, usage.numSamplers },
{ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS, usage.numAtomicCounterBuffers },
{ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, usage.numAtomicCounters },
+ { GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS, usage.numImages },
{ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, usage.numShaderStorageBlocks },
};
diff --git a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
index 2eab2e7..72a2b43 100644
--- a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
+++ b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
@@ -189,6 +189,49 @@
return exponent[precision];
}
+static float makeFloatRepresentable (float f, glu::Precision precision)
+{
+ if (precision == glu::PRECISION_HIGHP)
+ {
+ // \note: assuming f is not extended-precision
+ return f;
+ }
+ else
+ {
+ const int numMantissaBits = getMinMantissaBits(precision);
+ const int maxNormalizedValueExponent = getMaxNormalizedValueExponent(precision);
+ const int minNormalizedValueExponent = getMinNormalizedValueExponent(precision);
+ const deUint32 representableMantissaMask = ((deUint32(1) << numMantissaBits) - 1) << (23 - (deUint32)numMantissaBits);
+ const float largestRepresentableValue = tcu::Float32::constructBits(+1, maxNormalizedValueExponent, ((1u << numMantissaBits) - 1u) << (23u - (deUint32)numMantissaBits)).asFloat();
+ const bool zeroNotRepresentable = (precision == glu::PRECISION_LOWP);
+
+ // if zero is not required to be representable, use smallest positive non-subnormal value
+ const float zeroValue = (zeroNotRepresentable) ? (tcu::Float32::constructBits(+1, minNormalizedValueExponent, 1).asFloat()) : (0.0f);
+
+ const tcu::Float32 float32Representation (f);
+
+ if (float32Representation.exponent() < minNormalizedValueExponent)
+ {
+ // flush too small values to zero
+ return zeroValue;
+ }
+ else if (float32Representation.exponent() > maxNormalizedValueExponent)
+ {
+ // clamp too large values
+ return (float32Representation.sign() == +1) ? (largestRepresentableValue) : (-largestRepresentableValue);
+ }
+ else
+ {
+ // remove unrepresentable mantissa bits
+ const tcu::Float32 targetRepresentation(tcu::Float32::constructBits(float32Representation.sign(),
+ float32Representation.exponent(),
+ float32Representation.mantissaBits() & representableMantissaMask));
+
+ return targetRepresentation.asFloat();
+ }
+ }
+}
+
// CommonFunctionCase
class CommonFunctionCase : public TestCase
@@ -1733,17 +1776,29 @@
}
fillRandomScalars(rnd, ranges[precision].x(), ranges[precision].y(), (float*)values[0] + 8*scalarSize, (numValues-8)*scalarSize);
+
+ // Make sure the values are representable in the target format
+ for (int caseNdx = 0; caseNdx < numValues; ++caseNdx)
+ {
+ for (int scalarNdx = 0; scalarNdx < scalarSize; scalarNdx++)
+ {
+ float* const valuePtr = &((float*)values[0])[caseNdx * scalarSize + scalarNdx];
+
+ *valuePtr = makeFloatRepresentable(*valuePtr, precision);
+ }
+ }
}
bool compare (const void* const* inputs, const void* const* outputs)
{
- const glu::DataType type = m_spec.inputs[0].varType.getBasicType();
- const glu::Precision precision = m_spec.inputs[0].varType.getPrecision();
- const int scalarSize = glu::getDataTypeScalarSize(type);
- const bool signedZero = supportsSignedZero(precision);
+ const glu::DataType type = m_spec.inputs[0].varType.getBasicType();
+ const glu::Precision precision = m_spec.inputs[0].varType.getPrecision();
+ const int scalarSize = glu::getDataTypeScalarSize(type);
+ const bool transitSupportsSignedZero = (m_shaderType != glu::SHADERTYPE_FRAGMENT); // executor cannot reliably transit negative zero to fragment stage
+ const bool signedZero = supportsSignedZero(precision) && transitSupportsSignedZero;
- const int mantissaBits = getMinMantissaBits(precision);
- const deUint32 maxUlpDiff = getMaxUlpDiffFromBits(mantissaBits);
+ const int mantissaBits = getMinMantissaBits(precision);
+ const deUint32 maxUlpDiff = getMaxUlpDiffFromBits(mantissaBits);
for (int compNdx = 0; compNdx < scalarSize; compNdx++)
{
@@ -1941,10 +1996,6 @@
const glu::DataType type = m_spec.inputs[0].varType.getBasicType();
const glu::Precision precision = m_spec.inputs[0].varType.getPrecision();
const int scalarSize = glu::getDataTypeScalarSize(type);
- const int numMantissaBits = getMinMantissaBits(precision);
- const int maxNormalizedValueExponent = getMaxNormalizedValueExponent(precision);
- const int minNormalizedValueExponent = getMinNormalizedValueExponent(precision);
- const deUint32 representableMantissaMask = ((deUint32(1) << numMantissaBits) - 1) << (23 - (deUint32)numMantissaBits);
const float specialCases[][3] =
{
// a b c
@@ -1981,42 +2032,15 @@
}
// Make sure the values are representable in the target format
- if (precision != glu::PRECISION_HIGHP)
+ for (int inputNdx = 0; inputNdx < 3; inputNdx++)
{
- const float largestRepresentableValue = tcu::Float32::constructBits(+1, maxNormalizedValueExponent, ((1u << numMantissaBits) - 1u) << (23u - (deUint32)numMantissaBits)).asFloat();
-
- // zero is not required to be representable, use smallest positive non-subnormal value
- const float zeroReplacement = tcu::Float32::constructBits(+1, minNormalizedValueExponent, 1).asFloat();
-
- for (int inputNdx = 0; inputNdx < 3; inputNdx++)
+ for (int caseNdx = 0; caseNdx < numValues; ++caseNdx)
{
- for (int caseNdx = 0; caseNdx < numValues; ++caseNdx)
+ for (int scalarNdx = 0; scalarNdx < scalarSize; scalarNdx++)
{
- for (int scalarNdx = 0; scalarNdx < scalarSize; scalarNdx++)
- {
- float& value = ((float*)values[inputNdx])[caseNdx * scalarSize + scalarNdx];
- const tcu::Float32 float32Representation (value);
+ float* const valuePtr = &((float*)values[inputNdx])[caseNdx * scalarSize + scalarNdx];
- // flush too small values to zero
- if (float32Representation.exponent() < minNormalizedValueExponent)
- {
- value = zeroReplacement;
- }
- // clamp too large values
- else if (float32Representation.exponent() > maxNormalizedValueExponent)
- {
- value = (float32Representation.sign() == +1) ? (largestRepresentableValue) : (-largestRepresentableValue);
- }
- // remove unrepresentable mantissa bits
- else
- {
- const tcu::Float32 targetRepresentation (tcu::Float32::constructBits(float32Representation.sign(),
- float32Representation.exponent(),
- float32Representation.mantissaBits() & representableMantissaMask));
-
- value = targetRepresentation.asFloat();
- }
- }
+ *valuePtr = makeFloatRepresentable(*valuePtr, precision);
}
}
}
diff --git a/modules/gles31/functional/es31fShaderHelperInvocationTests.cpp b/modules/gles31/functional/es31fShaderHelperInvocationTests.cpp
index c0d1038..125496b 100644
--- a/modules/gles31/functional/es31fShaderHelperInvocationTests.cpp
+++ b/modules/gles31/functional/es31fShaderHelperInvocationTests.cpp
@@ -100,10 +100,11 @@
static void genVertices (PrimitiveType primType, int numPrimitives, de::Random* rnd, vector<Vec2>* dst)
{
- const bool isTri = primType == PRIMITIVETYPE_TRIANGLE;
- const float minCoord = isTri ? -1.5f : -1.0f;
- const float maxCoord = isTri ? +1.5f : +1.0f;
- const int numVert = getNumVerticesPerPrimitive(primType)*numPrimitives;
+ const bool isTri = primType == PRIMITIVETYPE_TRIANGLE;
+ const float minCoord = isTri ? -1.5f : -1.0f;
+ const float maxCoord = isTri ? +1.5f : +1.0f;
+ const int numVerticesPerPrimitive = getNumVerticesPerPrimitive(primType);
+ const int numVert = numVerticesPerPrimitive*numPrimitives;
dst->resize(numVert);
@@ -112,6 +113,34 @@
(*dst)[ndx][0] = rnd->getFloat(minCoord, maxCoord);
(*dst)[ndx][1] = rnd->getFloat(minCoord, maxCoord);
}
+
+ // Don't produce completely or almost completely discardable primitives.
+ // \note: This doesn't guarantee that resulting primitives are visible or
+ // produce any fragments. This just removes trivially discardable
+ // primitives.
+ for (int primitiveNdx = 0; primitiveNdx < numPrimitives; ++primitiveNdx)
+ for (int component = 0; component < 2; ++component)
+ {
+ bool negativeClip = true;
+ bool positiveClip = true;
+
+ for (int vertexNdx = 0; vertexNdx < numVerticesPerPrimitive; ++vertexNdx)
+ {
+ const float p = (*dst)[primitiveNdx * numVerticesPerPrimitive + vertexNdx][component];
+ // \note 0.9 instead of 1.0 to avoid just barely visible primitives
+ if (p > -0.9f)
+ negativeClip = false;
+ if (p < +0.9f)
+ positiveClip = false;
+ }
+
+ // if discardable, just mirror first vertex along center
+ if (negativeClip || positiveClip)
+ {
+ (*dst)[primitiveNdx * numVerticesPerPrimitive + 0][0] *= -1.0f;
+ (*dst)[primitiveNdx * numVerticesPerPrimitive + 0][1] *= -1.0f;
+ }
+ }
}
static int getInteger (const glw::Functions& gl, deUint32 pname)
@@ -180,6 +209,7 @@
private:
const glu::RenderContext& m_renderCtx;
const int m_numSamples;
+ const IVec2 m_size;
glu::Renderbuffer m_colorbuffer;
glu::Framebuffer m_framebuffer;
@@ -190,6 +220,7 @@
FboHelper::FboHelper (const glu::RenderContext& renderCtx, int width, int height, deUint32 format, int numSamples)
: m_renderCtx (renderCtx)
, m_numSamples (numSamples)
+ , m_size (width, height)
, m_colorbuffer (renderCtx)
, m_framebuffer (renderCtx)
, m_resolveColorbuffer (renderCtx)
@@ -229,6 +260,8 @@
const glw::Functions& gl = m_renderCtx.getFunctions();
gl.bindFramebuffer(GL_FRAMEBUFFER, *m_framebuffer);
GLU_EXPECT_NO_ERROR(gl.getError(), "glBindFramebuffer()");
+ gl.viewport(0, 0, m_size.x(), m_size.y());
+ GLU_EXPECT_NO_ERROR(gl.getError(), "viewport()");
}
void FboHelper::readPixels (int x, int y, const tcu::PixelBufferAccess& dst)
@@ -351,16 +384,21 @@
const tcu::RGBA fgRef (0, 255, 0, 255);
const tcu::RGBA threshold (1, isMultiSample ? 254 : 1, 1, 1);
int numInvalidPixels = 0;
+ bool renderedSomething = false;
for (int y = 0; y < result.getHeight(); ++y)
{
for (int x = 0; x < result.getWidth(); ++x)
{
const tcu::RGBA resPix = result.getPixel(x, y);
+ const bool isBg = tcu::compareThreshold(resPix, bgRef, threshold);
+ const bool isFg = tcu::compareThreshold(resPix, fgRef, threshold);
- if (!tcu::compareThreshold(resPix, bgRef, threshold) &&
- !tcu::compareThreshold(resPix, fgRef, threshold))
+ if (!isBg && !isFg)
numInvalidPixels += 1;
+
+ if (isFg)
+ renderedSomething = true;
}
}
@@ -368,11 +406,19 @@
{
log << TestLog::Image("Result", "Result image", result);
log << TestLog::Message << "ERROR: Found " << numInvalidPixels << " invalid result pixels!" << TestLog::EndMessage;
+ return false;
+ }
+ else if (!renderedSomething)
+ {
+ log << TestLog::Image("Result", "Result image", result);
+ log << TestLog::Message << "ERROR: Result image was empty!" << TestLog::EndMessage;
+ return false;
}
else
+ {
log << TestLog::Message << "All result pixels are valid" << TestLog::EndMessage;
-
- return numInvalidPixels == 0;
+ return true;
+ }
}
HelperInvocationValueCase::IterateResult HelperInvocationValueCase::iterate (void)
@@ -403,7 +449,7 @@
class HelperInvocationDerivateCase : public TestCase
{
public:
- HelperInvocationDerivateCase (Context& context, const char* name, const char* description, PrimitiveType primType, int numSamples, const char* derivateFunc);
+ HelperInvocationDerivateCase (Context& context, const char* name, const char* description, PrimitiveType primType, int numSamples, const char* derivateFunc, bool checkAbsoluteValue);
~HelperInvocationDerivateCase (void);
void init (void);
@@ -414,6 +460,7 @@
const PrimitiveType m_primitiveType;
const int m_numSamples;
const std::string m_derivateFunc;
+ const bool m_checkAbsoluteValue;
const int m_numIters;
@@ -422,11 +469,12 @@
int m_iterNdx;
};
-HelperInvocationDerivateCase::HelperInvocationDerivateCase (Context& context, const char* name, const char* description, PrimitiveType primType, int numSamples, const char* derivateFunc)
+HelperInvocationDerivateCase::HelperInvocationDerivateCase (Context& context, const char* name, const char* description, PrimitiveType primType, int numSamples, const char* derivateFunc, bool checkAbsoluteValue)
: TestCase (context, name, description)
, m_primitiveType (primType)
, m_numSamples (numSamples)
, m_derivateFunc (derivateFunc)
+ , m_checkAbsoluteValue (checkAbsoluteValue)
, m_numIters (16)
, m_iterNdx (0)
{
@@ -443,6 +491,7 @@
const glw::Functions& gl = renderCtx.getFunctions();
const int maxSamples = getInteger(gl, GL_MAX_SAMPLES);
const int actualSamples = m_numSamples == NUM_SAMPLES_MAX ? maxSamples : m_numSamples;
+ const std::string funcSource = (m_checkAbsoluteValue) ? ("abs(" + m_derivateFunc + "(value))") : (m_derivateFunc + "(value)");
m_program = MovePtr<ShaderProgram>(new ShaderProgram(m_context.getRenderContext(),
glu::ProgramSources()
@@ -461,7 +510,7 @@
"void main (void)\n"
"{\n"
" highp float value = gl_HelperInvocation ? 1.0 : 0.0;\n"
- " highp float derivate = ") + m_derivateFunc + "(value);\n"
+ " highp float derivate = ") + funcSource + ";\n"
" if (gl_HelperInvocation)\n"
" o_color = vec4(1.0, 0.0, derivate, 1.0);\n"
" else\n"
@@ -534,6 +583,7 @@
const tcu::RGBA isFgThreshold (1, isMultiSample ? 254 : 1, 255, 1);
int numInvalidPixels = 0;
int numNonZeroDeriv = 0;
+ bool renderedSomething = false;
for (int y = 0; y < result.getHeight(); ++y)
{
@@ -551,20 +601,31 @@
if ((!isBg && !isFg) || // Neither of valid colors (ignoring blue channel that has derivate)
(nonZeroDeriv && !neighborBg)) // Has non-zero derivate, but sample not at primitive edge
numInvalidPixels += 1;
+
+ if (isFg)
+ renderedSomething = true;
}
}
+ log << TestLog::Message << "Found " << numNonZeroDeriv << " pixels with non-zero derivate (neighbor sample has gl_HelperInvocation = true)" << TestLog::EndMessage;
+
if (numInvalidPixels > 0)
{
log << TestLog::Image("Result", "Result image", result);
log << TestLog::Message << "ERROR: Found " << numInvalidPixels << " invalid result pixels!" << TestLog::EndMessage;
+ return false;
+ }
+ else if (!renderedSomething)
+ {
+ log << TestLog::Image("Result", "Result image", result);
+ log << TestLog::Message << "ERROR: Result image was empty!" << TestLog::EndMessage;
+ return false;
}
else
+ {
log << TestLog::Message << "All result pixels are valid" << TestLog::EndMessage;
-
- log << TestLog::Message << "Found " << numNonZeroDeriv << " pixels with non-zero derivate (neighbor sample has gl_HelperInvocation = true)" << TestLog::EndMessage;
-
- return numInvalidPixels == 0;
+ return true;
+ }
}
HelperInvocationDerivateCase::IterateResult HelperInvocationDerivateCase::iterate (void)
@@ -660,9 +721,9 @@
const PrimitiveType primType = s_primTypes[primTypeNdx].primType;
const int numSamples = s_sampleCounts[sampleCountNdx].numSamples;
- derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_dfdx").c_str(), "", primType, numSamples, "dFdx"));
- derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_dfdy").c_str(), "", primType, numSamples, "dFdy"));
- derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_fwidth").c_str(), "", primType, numSamples, "fwidth"));
+ derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_dfdx").c_str(), "", primType, numSamples, "dFdx", true));
+ derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_dfdy").c_str(), "", primType, numSamples, "dFdy", true));
+ derivateGroup->addChild(new HelperInvocationDerivateCase(m_context, (name + "_fwidth").c_str(), "", primType, numSamples, "fwidth", false));
}
}
}
diff --git a/modules/gles31/functional/es31fTessellationTests.cpp b/modules/gles31/functional/es31fTessellationTests.cpp
index c9c5dbf..73e2cf3 100644
--- a/modules/gles31/functional/es31fTessellationTests.cpp
+++ b/modules/gles31/functional/es31fTessellationTests.cpp
@@ -5998,10 +5998,12 @@
DE_ASSERT(numElements != -2);
if (isArray)
+ {
+ // \note: TCS output arrays are always implicitly-sized
tcsDeclarations += outMaybePatch + output.declareArray(m_ioType == IO_TYPE_PER_PATCH_ARRAY ? de::toString(int(NUM_PER_PATCH_ARRAY_ELEMS))
: m_ioType == IO_TYPE_PER_PATCH_BLOCK_ARRAY ? de::toString(int(NUM_PER_PATCH_BLOCKS))
- : isExplicitVertexArraySize ? de::toString(int(NUM_OUTPUT_VERTICES))
: "");
+ }
else
tcsDeclarations += outMaybePatch + output.declare();
diff --git a/modules/gles31/functional/es31fTextureSpecificationTests.cpp b/modules/gles31/functional/es31fTextureSpecificationTests.cpp
index 302d1b4..bad7f20 100644
--- a/modules/gles31/functional/es31fTextureSpecificationTests.cpp
+++ b/modules/gles31/functional/es31fTextureSpecificationTests.cpp
@@ -326,9 +326,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, tex);
@@ -364,9 +364,9 @@
void createTexture (void)
{
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
de::Random rnd (deStringHash(getName()));
glu::TransferFormat transferFmt = glu::getTransferFormat(m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(transferFmt.format, transferFmt.dataType));
glGenTextures (1, &tex);
glBindTexture (GL_TEXTURE_CUBE_MAP_ARRAY, tex);
@@ -605,7 +605,7 @@
{
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, tex);
@@ -651,7 +651,7 @@
glu::TransferFormat fmt = glu::getTransferFormat(m_texFormat);
de::Random rnd (deStringHash(getName()));
deUint32 tex = 0;
- tcu::TextureLevel levelData (m_texFormat);
+ tcu::TextureLevel levelData (glu::mapGLTransferFormat(fmt.format, fmt.dataType));
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, tex);
diff --git a/modules/gles31/scripts/gen-implicit-conversions.py b/modules/gles31/scripts/gen-implicit-conversions.py
index 188f3b5..c84dd84 100644
--- a/modules/gles31/scripts/gen-implicit-conversions.py
+++ b/modules/gles31/scripts/gen-implicit-conversions.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import sys
import itertools
import operator
diff --git a/modules/gles31/scripts/gen-uniform-blocks.py b/modules/gles31/scripts/gen-uniform-blocks.py
index 1d716ab..ad44085 100644
--- a/modules/gles31/scripts/gen-uniform-blocks.py
+++ b/modules/gles31/scripts/gen-uniform-blocks.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
from genutil import *
allCases = []
diff --git a/modules/gles31/scripts/genutil.py b/modules/gles31/scripts/genutil.py
index f7ccc1a..d1cffa7 100644
--- a/modules/gles31/scripts/genutil.py
+++ b/modules/gles31/scripts/genutil.py
@@ -366,6 +366,12 @@
def __init__(self):
pass
+ def __eq__(self, other):
+ return self.isEqual(other)
+
+ def __ne__(self, other):
+ return not self.isEqual(other)
+
class Vec2(Vec):
def __init__(self, x, y):
assert(x.__class__ == y.__class__)
diff --git a/modules/glshared/glsBuiltinPrecisionTests.cpp b/modules/glshared/glsBuiltinPrecisionTests.cpp
index 39a4500..d0e6394 100644
--- a/modules/glshared/glsBuiltinPrecisionTests.cpp
+++ b/modules/glshared/glsBuiltinPrecisionTests.cpp
@@ -2304,7 +2304,7 @@
else
{
// |x| * 2^-10, slightly larger than 2 ULP at x == pi
- return deLdExp(deAbs(DE_PI_DOUBLE), -10);
+ return deLdExp(deAbs(arg), -10);
}
}
else
diff --git a/modules/glshared/glsShaderExecUtil.cpp b/modules/glshared/glsShaderExecUtil.cpp
index 6891eec..019c526 100644
--- a/modules/glshared/glsShaderExecUtil.cpp
+++ b/modules/glshared/glsShaderExecUtil.cpp
@@ -29,6 +29,7 @@
#include "gluTextureUtil.hpp"
#include "gluProgramInterfaceQuery.hpp"
#include "gluPixelTransfer.hpp"
+#include "gluStrUtil.hpp"
#include "tcuTestLog.hpp"
#include "glwFunctions.hpp"
#include "glwEnums.hpp"
@@ -73,6 +74,21 @@
throw tcu::NotSupportedError(extension + " is not supported");
}
+static void checkLimit (const glu::RenderContext& renderCtx, deUint32 pname, int required)
+{
+ const glw::Functions& gl = renderCtx.getFunctions();
+ int implementationLimit = -1;
+ deUint32 error;
+
+ gl.getIntegerv(pname, &implementationLimit);
+ error = gl.getError();
+
+ if (error != GL_NO_ERROR)
+ throw tcu::TestError("Failed to query " + de::toString(glu::getGettableStateStr(pname)) + " - got " + de::toString(glu::getErrorStr(error)));
+ if (implementationLimit < required)
+ throw tcu::NotSupportedError("Test requires " + de::toString(glu::getGettableStateStr(pname)) + " >= " + de::toString(required) + ", got " + de::toString(implementationLimit));
+}
+
// Shader utilities
static std::string generateVertexShader (const ShaderSpec& shaderSpec)
@@ -1282,10 +1298,25 @@
class CheckTessSupport
{
public:
- inline CheckTessSupport (const glu::RenderContext& renderCtx)
+ enum Stage
{
+ STAGE_CONTROL = 0,
+ STAGE_EVAL,
+ };
+
+ inline CheckTessSupport (const glu::RenderContext& renderCtx, Stage stage)
+ {
+ const int numBlockRequired = 2; // highest binding is always 1 (output) i.e. count == 2
+
if (renderCtx.getType().getAPI().getProfile() == glu::PROFILE_ES)
checkExtension(renderCtx, "GL_EXT_tessellation_shader");
+
+ if (stage == STAGE_CONTROL)
+ checkLimit(renderCtx, GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, numBlockRequired);
+ else if (stage == STAGE_EVAL)
+ checkLimit(renderCtx, GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, numBlockRequired);
+ else
+ DE_ASSERT(false);
}
};
@@ -1356,7 +1387,7 @@
}
TessControlExecutor::TessControlExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
- : CheckTessSupport (renderCtx)
+ : CheckTessSupport (renderCtx, STAGE_CONTROL)
, BufferIoExecutor (renderCtx, shaderSpec, glu::ProgramSources()
<< glu::VertexSource(generateVertexShaderForTess(shaderSpec.version))
<< glu::TessellationControlSource(generateTessControlShader(shaderSpec))
@@ -1459,7 +1490,7 @@
}
TessEvaluationExecutor::TessEvaluationExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
- : CheckTessSupport (renderCtx)
+ : CheckTessSupport (renderCtx, STAGE_EVAL)
, BufferIoExecutor (renderCtx, shaderSpec, glu::ProgramSources()
<< glu::VertexSource(generateVertexShaderForTess(shaderSpec.version))
<< glu::TessellationControlSource(generatePassthroughTessControlShader(shaderSpec.version))
diff --git a/modules/glshared/glsShaderLibraryCase.cpp b/modules/glshared/glsShaderLibraryCase.cpp
index 7a4e366..a37bb47 100644
--- a/modules/glshared/glsShaderLibraryCase.cpp
+++ b/modules/glshared/glsShaderLibraryCase.cpp
@@ -85,6 +85,17 @@
return version != glu::GLSL_VERSION_100_ES;
}
+static int queryGLInt (const glu::RenderContext& renderCtx, deUint32 pname)
+{
+ const glw::Functions& gl = renderCtx.getFunctions();
+ glw::GLint value = 0;
+
+ gl.getIntegerv(pname, &value);
+ GLU_EXPECT_NO_ERROR(gl.getError(), ("query " + de::toString(glu::getGettableStateStr(pname))).c_str());
+
+ return value;
+}
+
ShaderCase::ValueBlock::ValueBlock (void)
: arrayLength(0)
{
@@ -1493,7 +1504,7 @@
return withExt;
}
-static map<string, string> generateVertexSpecialization (glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
+static map<string, string> generateVertexSpecialization (const glu::RenderContext& renderCtx, glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
{
const bool usesInout = usesShaderInoutQualifiers(targetVersion);
const char* vtxIn = usesInout ? "in" : "attribute";
@@ -1501,6 +1512,8 @@
ostringstream setup;
map<string, string> params;
+ DE_UNREF(renderCtx);
+
decl << vtxIn << " highp vec4 dEQP_Position;\n";
for (int ndx = 0; ndx < (int)valueBlock.values.size(); ndx++)
@@ -1534,7 +1547,7 @@
return params;
}
-static map<string, string> generateFragmentSpecialization (glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
+static map<string, string> generateFragmentSpecialization (const glu::RenderContext& renderCtx, glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
{
const bool usesInout = usesShaderInoutQualifiers(targetVersion);
const bool customColorOut = usesInout;
@@ -1543,6 +1556,8 @@
ostringstream output;
map<string, string> params;
+ DE_UNREF(renderCtx);
+
genCompareFunctions(decl, valueBlock, false);
genCompareOp(output, fragColor, valueBlock, "", DE_NULL);
@@ -1573,11 +1588,12 @@
return params;
}
-static map<string, string> generateGeometrySpecialization (glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
+static map<string, string> generateGeometrySpecialization (const glu::RenderContext& renderCtx, glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
{
ostringstream decl;
map<string, string> params;
+ DE_UNREF(renderCtx);
DE_UNREF(targetVersion);
decl << "layout (triangles) in;\n";
@@ -1601,7 +1617,7 @@
return params;
}
-static map<string, string> generateTessControlSpecialization (glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
+static map<string, string> generateTessControlSpecialization (const glu::RenderContext& renderCtx, glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
{
ostringstream decl;
ostringstream output;
@@ -1635,10 +1651,11 @@
params.insert(pair<string, string>("TESSELLATION_CONTROL_DECLARATIONS", decl.str()));
params.insert(pair<string, string>("TESSELLATION_CONTROL_OUTPUT", output.str()));
+ params.insert(pair<string, string>("GL_MAX_PATCH_VERTICES", de::toString(queryGLInt(renderCtx, GL_MAX_PATCH_VERTICES))));
return params;
}
-static map<string, string> generateTessEvalSpecialization (glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
+static map<string, string> generateTessEvalSpecialization (const glu::RenderContext& renderCtx, glu::GLSLVersion targetVersion, const ShaderCase::ValueBlock& valueBlock)
{
ostringstream decl;
ostringstream output;
@@ -1666,14 +1683,22 @@
params.insert(pair<string, string>("TESSELLATION_EVALUATION_DECLARATIONS", decl.str()));
params.insert(pair<string, string>("TESSELLATION_EVALUATION_OUTPUT", output.str()));
+ params.insert(pair<string, string>("GL_MAX_PATCH_VERTICES", de::toString(queryGLInt(renderCtx, GL_MAX_PATCH_VERTICES))));
return params;
}
-static void specializeShaders (glu::ProgramSources& dst, glu::ShaderType shaderType, const std::vector<std::string>& sources, const ShaderCase::ValueBlock& valueBlock, glu::GLSLVersion targetVersion, const std::vector<ShaderCase::CaseRequirement>& requirements, std::map<std::string, std::string> (*specializationGenerator)(glu::GLSLVersion, const ShaderCase::ValueBlock&))
+static void specializeShaders (const glu::RenderContext& renderCtx,
+ glu::ProgramSources& dst,
+ glu::ShaderType shaderType,
+ const std::vector<std::string>& sources,
+ const ShaderCase::ValueBlock& valueBlock,
+ glu::GLSLVersion targetVersion,
+ const std::vector<ShaderCase::CaseRequirement>& requirements,
+ std::map<std::string, std::string> (*specializationGenerator)(const glu::RenderContext&, glu::GLSLVersion, const ShaderCase::ValueBlock&))
{
if (!sources.empty())
{
- const std::map<std::string, std::string> specializationParams = specializationGenerator(targetVersion, valueBlock);
+ const std::map<std::string, std::string> specializationParams = specializationGenerator(renderCtx, targetVersion, valueBlock);
for (int ndx = 0; ndx < (int)sources.size(); ++ndx)
{
@@ -1688,27 +1713,27 @@
void ShaderCase::specializeVertexShaders (glu::ProgramSources& dst, const std::vector<std::string>& sources, const ValueBlock& valueBlock, const std::vector<ShaderCase::CaseRequirement>& requirements) const
{
- specializeShaders(dst, glu::SHADERTYPE_VERTEX, sources, valueBlock, m_targetVersion, requirements, generateVertexSpecialization);
+ specializeShaders(m_renderCtx, dst, glu::SHADERTYPE_VERTEX, sources, valueBlock, m_targetVersion, requirements, generateVertexSpecialization);
}
void ShaderCase::specializeFragmentShaders (glu::ProgramSources& dst, const std::vector<std::string>& sources, const ValueBlock& valueBlock, const std::vector<ShaderCase::CaseRequirement>& requirements) const
{
- specializeShaders(dst, glu::SHADERTYPE_FRAGMENT, sources, valueBlock, m_targetVersion, requirements, generateFragmentSpecialization);
+ specializeShaders(m_renderCtx, dst, glu::SHADERTYPE_FRAGMENT, sources, valueBlock, m_targetVersion, requirements, generateFragmentSpecialization);
}
void ShaderCase::specializeGeometryShaders (glu::ProgramSources& dst, const std::vector<std::string>& sources, const ValueBlock& valueBlock, const std::vector<ShaderCase::CaseRequirement>& requirements) const
{
- specializeShaders(dst, glu::SHADERTYPE_GEOMETRY, sources, valueBlock, m_targetVersion, requirements, generateGeometrySpecialization);
+ specializeShaders(m_renderCtx, dst, glu::SHADERTYPE_GEOMETRY, sources, valueBlock, m_targetVersion, requirements, generateGeometrySpecialization);
}
void ShaderCase::specializeTessControlShaders (glu::ProgramSources& dst, const std::vector<std::string>& sources, const ValueBlock& valueBlock, const std::vector<ShaderCase::CaseRequirement>& requirements) const
{
- specializeShaders(dst, glu::SHADERTYPE_TESSELLATION_CONTROL, sources, valueBlock, m_targetVersion, requirements, generateTessControlSpecialization);
+ specializeShaders(m_renderCtx, dst, glu::SHADERTYPE_TESSELLATION_CONTROL, sources, valueBlock, m_targetVersion, requirements, generateTessControlSpecialization);
}
void ShaderCase::specializeTessEvalShaders (glu::ProgramSources& dst, const std::vector<std::string>& sources, const ValueBlock& valueBlock, const std::vector<ShaderCase::CaseRequirement>& requirements) const
{
- specializeShaders(dst, glu::SHADERTYPE_TESSELLATION_EVALUATION, sources, valueBlock, m_targetVersion, requirements, generateTessEvalSpecialization);
+ specializeShaders(m_renderCtx, dst, glu::SHADERTYPE_TESSELLATION_EVALUATION, sources, valueBlock, m_targetVersion, requirements, generateTessEvalSpecialization);
}
void ShaderCase::dumpValues (const ValueBlock& valueBlock, int arrayNdx)
diff --git a/modules/glshared/glsStateQueryUtil.cpp b/modules/glshared/glsStateQueryUtil.cpp
index ef3000f..5edbc1a 100644
--- a/modules/glshared/glsStateQueryUtil.cpp
+++ b/modules/glshared/glsStateQueryUtil.cpp
@@ -1079,11 +1079,20 @@
case DATATYPE_FLOAT:
{
- const glw::GLfloat reference = (glw::GLfloat)expected;
- if (state.getFloatAccess() != reference)
+ const glw::GLfloat refValueMin = deInt32ToFloatRoundToNegInf(expected);
+ const glw::GLfloat refValueMax = deInt32ToFloatRoundToPosInf(expected);
+
+ if (state.getFloatAccess() < refValueMin ||
+ state.getFloatAccess() > refValueMax ||
+ deIsNaN(state.getFloatAccess()))
{
std::ostringstream buf;
- buf << "Expected " << reference << ", got " << state.getFloatAccess();
+
+ if (refValueMin == refValueMax)
+ buf << "Expected " << refValueMin << ", got " << state.getFloatAccess();
+ else
+ buf << "Expected in range [" << refValueMin << ", " << refValueMax << "], got " << state.getFloatAccess();
+
result.fail(buf.str());
}
break;
@@ -1147,7 +1156,7 @@
case DATATYPE_FLOAT:
{
- if (state.getFloatAccess() < minValue)
+ if (state.getFloatAccess() < deInt32ToFloatRoundToNegInf(minValue) || deIsNaN(state.getFloatAccess()))
{
std::ostringstream buf;
buf << "Expected greater or equal to " << minValue << ", got " << state.getFloatAccess();
@@ -1201,7 +1210,7 @@
case DATATYPE_FLOAT:
{
- if (state.getFloatAccess() > maxValue)
+ if (state.getFloatAccess() > deInt32ToFloatRoundToPosInf(maxValue) || deIsNaN(state.getFloatAccess()))
{
std::ostringstream buf;
buf << "Expected less or equal to " << maxValue << ", got " << state.getFloatAccess();
@@ -1336,7 +1345,7 @@
case DATATYPE_FLOAT:
{
- if (state.getFloatAccess() < minValue)
+ if (state.getFloatAccess() < minValue || deIsNaN(state.getFloatAccess()))
{
std::ostringstream buf;
buf << "Expected greater or equal to " << minValue << ", got " << state.getFloatAccess();
@@ -1390,7 +1399,7 @@
case DATATYPE_FLOAT:
{
- if (state.getFloatAccess() > maxValue)
+ if (state.getFloatAccess() > maxValue || deIsNaN(state.getFloatAccess()))
{
std::ostringstream buf;
buf << "Expected less or equal to " << maxValue << ", got " << state.getFloatAccess();
@@ -1614,7 +1623,6 @@
}
}
-
void verifyFloatVec4 (tcu::ResultCollector& result, QueriedState& state, const tcu::Vec4& expected)
{
switch (state.getType())
diff --git a/modules/glshared/glsTextureTestUtil.cpp b/modules/glshared/glsTextureTestUtil.cpp
index ab91da9..452f3c9 100644
--- a/modules/glshared/glsTextureTestUtil.cpp
+++ b/modules/glshared/glsTextureTestUtil.cpp
@@ -213,7 +213,7 @@
// 1D lookup LOD computation.
-inline float computeLodFromDerivates (LodMode mode, float dudx, float dudy)
+float computeLodFromDerivates (LodMode mode, float dudx, float dudy)
{
float p = 0.0f;
switch (mode)
@@ -244,7 +244,7 @@
// 2D lookup LOD computation.
-inline float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dudy, float dvdy)
+float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dudy, float dvdy)
{
float p = 0.0f;
switch (mode)
@@ -284,7 +284,7 @@
// 3D lookup LOD computation.
-inline float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dwdx, float dudy, float dvdy, float dwdy)
+float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dwdx, float dudy, float dvdy, float dwdy)
{
float p = 0.0f;
switch (mode)
@@ -982,13 +982,6 @@
}
}
-void clear (const SurfaceAccess& dst, const tcu::Vec4& color)
-{
- for (int y = 0; y < dst.getHeight(); y++)
- for (int x = 0; x < dst.getWidth(); x++)
- dst.setPixel(color, x, y);
-}
-
bool compareImages (TestLog& log, const tcu::Surface& reference, const tcu::Surface& rendered, tcu::RGBA threshold)
{
return tcu::pixelThresholdCompare(log, "Result", "Image comparison result", reference, rendered, threshold, tcu::COMPARE_LOG_RESULT);
diff --git a/modules/glshared/glsTextureTestUtil.hpp b/modules/glshared/glsTextureTestUtil.hpp
index a94f1ab..c7a8af1 100644
--- a/modules/glshared/glsTextureTestUtil.hpp
+++ b/modules/glshared/glsTextureTestUtil.hpp
@@ -344,8 +344,6 @@
int maxLevel;
};
-void clear (const SurfaceAccess& dst, const tcu::Vec4& color);
-
// Similar to sampleTexture() except uses texelFetch.
void fetchTexture (const SurfaceAccess& dst, const tcu::ConstPixelBufferAccess& src, const float* texCoord, const tcu::Vec4& colorScale, const tcu::Vec4& colorBias);
@@ -357,6 +355,10 @@
void sampleTexture (const SurfaceAccess& dst, const tcu::Texture1DView& src, const float* texCoord, const ReferenceParams& params);
void sampleTexture (const SurfaceAccess& dst, const tcu::Texture1DArrayView& src, const float* texCoord, const ReferenceParams& params);
+float computeLodFromDerivates (LodMode mode, float dudx, float dudy);
+float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dudy, float dvdy);
+float computeLodFromDerivates (LodMode mode, float dudx, float dvdx, float dwdx, float dudy, float dvdy, float dwdy);
+
void computeQuadTexCoord1D (std::vector<float>& dst, float left, float right);
void computeQuadTexCoord1DArray (std::vector<float>& dst, int layerNdx, float left, float right);
void computeQuadTexCoord2D (std::vector<float>& dst, const tcu::Vec2& bottomLeft, const tcu::Vec2& topRight);
diff --git a/modules/glshared/glsVertexArrayTests.cpp b/modules/glshared/glsVertexArrayTests.cpp
index 71bba45..54cb855 100644
--- a/modules/glshared/glsVertexArrayTests.cpp
+++ b/modules/glshared/glsVertexArrayTests.cpp
@@ -1817,14 +1817,21 @@
m_isOk = true;
- for (int y = 1; y < ref.getHeight()-1; y++)
+ for (int y = 0; y < ref.getHeight(); y++)
{
- for (int x = 1; x < ref.getWidth()-1; x++)
+ for (int x = 0; x < ref.getWidth(); x++)
{
tcu::RGBA refPixel = ref.getPixel(x, y);
tcu::RGBA screenPixel = screen.getPixel(x, y);
bool isOkPixel = false;
+ if (y == 0 || y + 1 == ref.getHeight() || x == 0 || x + 1 == ref.getWidth())
+ {
+ // Don't check borders since the pixel neighborhood is undefined
+ error.setPixel(x, y, tcu::RGBA(screenPixel.getRed(), (screenPixel.getGreen() + 255) / 2, screenPixel.getBlue(), 255));
+ continue;
+ }
+
// Don't do comparisons for this pixel if it belongs to a one-pixel-thin part (i.e. it doesn't have similar-color neighbors in both x and y directions) in both result and reference.
// This fixes some false negatives.
bool refThin = (!tcu::compareThreshold(refPixel, ref.getPixel(x-1, y ), threshold) && !tcu::compareThreshold(refPixel, ref.getPixel(x+1, y ), threshold)) ||
diff --git a/modules/internal/ditDelibsTests.cpp b/modules/internal/ditDelibsTests.cpp
index f2bc06c..5f58c00 100644
--- a/modules/internal/ditDelibsTests.cpp
+++ b/modules/internal/ditDelibsTests.cpp
@@ -43,6 +43,7 @@
// debase
#include "deInt32.h"
+#include "deMath.h"
// decpp
#include "deBlockBuffer.hpp"
@@ -156,6 +157,7 @@
void init (void)
{
addChild(new SelfCheckCase(m_testCtx, "int32", "deInt32_selfTest()", deInt32_selfTest));
+ addChild(new SelfCheckCase(m_testCtx, "math", "deMath_selfTest()", deMath_selfTest));
}
};
diff --git a/scripts/build_android_mustpass.py b/scripts/build_android_mustpass.py
index 3fd8ff7..d81362b 100644
--- a/scripts/build_android_mustpass.py
+++ b/scripts/build_android_mustpass.py
@@ -137,7 +137,7 @@
ptrns.append(line)
return ptrns
-def applyPatterns (caseList, patterns, op):
+def applyPatterns (caseList, patterns, filename, op):
matched = set()
errors = []
curList = copy(caseList)
@@ -173,15 +173,15 @@
print "ERROR: %s: %s" % (reason, pattern)
if len(errors) > 0:
- die("Found %s invalid patterns" % len(errors))
+ die("Found %s invalid patterns while processing file %s" % (len(errors), filename))
return [c for c in caseList if op(c in matched)]
-def applyInclude (caseList, patterns):
- return applyPatterns(caseList, patterns, lambda b: b)
+def applyInclude (caseList, patterns, filename):
+ return applyPatterns(caseList, patterns, filename, lambda b: b)
-def applyExclude (caseList, patterns):
- return applyPatterns(caseList, patterns, lambda b: not b)
+def applyExclude (caseList, patterns, filename):
+ return applyPatterns(caseList, patterns, filename, lambda b: not b)
def readPatternLists (mustpass):
lists = {}
@@ -197,10 +197,10 @@
for filter in filters:
ptrnList = patternLists[filter.filename]
if filter.type == Filter.TYPE_INCLUDE:
- res = applyInclude(res, ptrnList)
+ res = applyInclude(res, ptrnList, filter.filename)
else:
assert filter.type == Filter.TYPE_EXCLUDE
- res = applyExclude(res, ptrnList)
+ res = applyExclude(res, ptrnList, filter.filename)
return res
def appendToHierarchy (root, casePath):
@@ -418,7 +418,11 @@
filters = MASTER_EGL_COMMON_FILTERS),
])
-MASTER_GLES2_COMMON_FILTERS = [include("gles2-master.txt"), exclude("gles2-failures.txt")]
+MASTER_GLES2_COMMON_FILTERS = [
+ include("gles2-master.txt"),
+ exclude("gles2-test-issues.txt"),
+ exclude("gles2-failures.txt")
+ ]
MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
# Master
Configuration(name = "master",
@@ -484,6 +488,7 @@
exclude("gles31-hw-issues.txt"),
exclude("gles31-test-issues.txt"),
exclude("gles31-spec-issues.txt"),
+ exclude("gles31-new-tests.txt"),
]
MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
# Master
diff --git a/scripts/egl/call_log_wrapper.py b/scripts/egl/call_log_wrapper.py
index 7841e46..2710341 100644
--- a/scripts/egl/call_log_wrapper.py
+++ b/scripts/egl/call_log_wrapper.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import os
import string
diff --git a/scripts/egl/enums.py b/scripts/egl/enums.py
index c78e0a7..353062e 100644
--- a/scripts/egl/enums.py
+++ b/scripts/egl/enums.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import os
import string
diff --git a/scripts/egl/func_ptrs.py b/scripts/egl/func_ptrs.py
index 024e9b1..a170e9f 100644
--- a/scripts/egl/func_ptrs.py
+++ b/scripts/egl/func_ptrs.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
from common import *
from khr_util.format import commandParams
diff --git a/scripts/egl/library.py b/scripts/egl/library.py
index f0e675b..e2641a4 100644
--- a/scripts/egl/library.py
+++ b/scripts/egl/library.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
from common import *
from khr_util.format import indentLines, commandParams, commandArgs
import khr_util.registry
diff --git a/scripts/src_util/pre_commit.py b/scripts/src_util/pre_commit.py
index 2f8df3f..5249ff2 100755
--- a/scripts/src_util/pre_commit.py
+++ b/scripts/src_util/pre_commit.py
@@ -1,4 +1,25 @@
#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
# Check that the input file has no external include guards.
# Returns with 0 exit code on success, 1 otherwise.
diff --git a/scripts/update-copyright-year.py b/scripts/update-copyright-year.py
index 28b4cd9..8b72f41 100644
--- a/scripts/update-copyright-year.py
+++ b/scripts/update-copyright-year.py
@@ -1,5 +1,25 @@
# -*- coding: utf-8 -*-
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
import os
import re
import sys
diff --git a/targets/android/install.sh b/targets/android/install.sh
index 1ac9130..450ad0c 100755
--- a/targets/android/install.sh
+++ b/targets/android/install.sh
@@ -1,5 +1,25 @@
#!/bin/sh
+#-------------------------------------------------------------------------
+# drawElements Quality Program utilities
+# --------------------------------------
+#
+# Copyright 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
echo "Removing old dEQP Ondevice Package..."
adb $* uninstall com.drawelements.deqp