Merge "Check error codes in vkRefUtil." into vulkan
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e91b79f..a3811b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,6 +75,9 @@
# \note PNG_LIBRARY and PNG_INCLUDE_PATH are promoted from external/libpng/CMakeLists.txt
endif ()
+# glslang
+add_subdirectory(external/glslang)
+
include_directories(${PNG_INCLUDE_PATH})
message(STATUS "DEQP_TARGET_NAME = ${DEQP_TARGET_NAME}")
diff --git a/android/cts/master/com.drawelements.deqp.gles3.xml b/android/cts/master/com.drawelements.deqp.gles3.xml
index 3d5b377..64f19db 100644
--- a/android/cts/master/com.drawelements.deqp.gles3.xml
+++ b/android/cts/master/com.drawelements.deqp.gles3.xml
@@ -4999,6 +4999,20 @@
</TestCase>
</TestSuite>
<TestSuite name="uniform">
+ <TestCase name="basic">
+ <Test name="precision_conflict_1">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="precision_conflict_4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
<TestCase name="struct">
<Test name="basic">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
@@ -49656,106 +49670,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"/>
@@ -49921,56 +49835,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"/>
@@ -50137,56 +50001,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"/>
@@ -51278,106 +51092,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"/>
@@ -51543,56 +51257,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"/>
@@ -51759,56 +51423,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"/>
@@ -52900,90 +52514,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"/>
@@ -53149,48 +52679,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"/>
@@ -53357,48 +52845,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"/>
@@ -56003,62 +55449,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">
@@ -66197,9 +65587,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>
diff --git a/android/cts/master/com.drawelements.deqp.gles31.xml b/android/cts/master/com.drawelements.deqp.gles31.xml
index c380d4a..a26cffd 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">
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index a60a966..fe5fae7 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -1543,6 +1543,10 @@
dEQP-GLES3.functional.shaders.linkage.varying.interpolation.flat
dEQP-GLES3.functional.shaders.linkage.varying.usage.readback_1
dEQP-GLES3.functional.shaders.linkage.varying.usage.writeback_1
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_1
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_2
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_3
+dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_4
dEQP-GLES3.functional.shaders.linkage.uniform.struct.basic
dEQP-GLES3.functional.shaders.linkage.uniform.struct.vertex_only
dEQP-GLES3.functional.shaders.linkage.uniform.struct.fragment_only
@@ -16088,18 +16092,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
@@ -16120,12 +16112,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
@@ -16146,12 +16132,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
@@ -16284,18 +16264,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
@@ -16316,12 +16284,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
@@ -16342,12 +16304,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
@@ -16480,16 +16436,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
@@ -16510,11 +16456,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
@@ -16535,11 +16476,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
@@ -17252,22 +17188,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
@@ -20434,7 +20354,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
diff --git a/android/cts/master/gles3-multisample.txt b/android/cts/master/gles3-multisample.txt
index 3415656..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
diff --git a/android/cts/master/gles3-rotate-landscape.txt b/android/cts/master/gles3-rotate-landscape.txt
index b18df7a..e3ef520 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
diff --git a/android/cts/master/gles3-rotate-portrait.txt b/android/cts/master/gles3-rotate-portrait.txt
index b18df7a..e3ef520 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
diff --git a/android/cts/master/gles3-rotate-reverse-landscape.txt b/android/cts/master/gles3-rotate-reverse-landscape.txt
index b18df7a..e3ef520 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
diff --git a/android/cts/master/gles3-rotate-reverse-portrait.txt b/android/cts/master/gles3-rotate-reverse-portrait.txt
index b18df7a..e3ef520 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
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index 1a053b5..a25ad7c 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
diff --git a/android/cts/master/src/gles3-hw-issues.txt b/android/cts/master/src/gles3-hw-issues.txt
index 8be5e8b..36162c5 100644
--- a/android/cts/master/src/gles3-hw-issues.txt
+++ b/android/cts/master/src/gles3-hw-issues.txt
@@ -855,3 +855,14 @@
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
+
+# 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-test-issues.txt b/android/cts/master/src/gles3-test-issues.txt
index 7c28a39..7edfba3 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
@@ -71,3 +74,7 @@
# 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_*
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-test-issues.txt b/android/cts/master/src/gles31-test-issues.txt
index 587f6fd..db4082a 100644
--- a/android/cts/master/src/gles31-test-issues.txt
+++ b/android/cts/master/src/gles31-test-issues.txt
@@ -27,3 +27,7 @@
# 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_*
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/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/external/glslang/CMakeLists.txt b/external/glslang/CMakeLists.txt
new file mode 100644
index 0000000..ca53d4f
--- /dev/null
+++ b/external/glslang/CMakeLists.txt
@@ -0,0 +1,109 @@
+# cmake file for glslang
+
+if (NOT DE_DEFS)
+ message(FATAL_ERROR "Include Defs.cmake")
+endif ()
+
+# Assume build inside Android source tree
+set(DEFAULT_GLSLANG_SRC_PATH "../glslang")
+
+set(GLSLANG_SRC_PATH ${DEFAULT_GLSLANG_SRC_PATH} CACHE STRING "Path to glslang source tree")
+
+if (IS_ABSOLUTE ${GLSLANG_SRC_PATH})
+ set(GLSLANG_ABS_PATH ${GLSLANG_SRC_PATH})
+else ()
+ set(GLSLANG_ABS_PATH "${CMAKE_SOURCE_DIR}/${GLSLANG_SRC_PATH}")
+endif ()
+
+find_package(BISON)
+
+# \todo [2015-06-24 pyry] Full C++11 support on Android requires using CLang + libc++
+if (NOT BISON_FOUND AND DE_OS_IS_WIN32 AND EXISTS ${GLSLANG_ABS_PATH}/tools/bison.exe)
+ message(STATUS "Using pre-built bison executable")
+ set(BISON_EXECUTABLE ${GLSLANG_ABS_PATH}/tools/bison.exe)
+ set(BISON_FOUND ON)
+endif ()
+
+if (BISON_FOUND AND EXISTS ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp AND NOT DE_OS_IS_ANDROID)
+ message(STATUS "glslang found; building with DEQP_SUPPORT_GLSLANG")
+
+ include_directories(
+ .
+ ${GLSLANG_ABS_PATH}
+ ${GLSLANG_ABS_PATH}/glslang
+ ${GLSLANG_ABS_PATH}/glslang/Include
+ ${GLSLANG_ABS_PATH}/glslang/Public
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent
+ ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen
+ ${GLSLANG_ABS_PATH}/OGLCompilersDLL
+ ${GLSLANG_ABS_PATH}/SPIRV
+ ${CMAKE_CURRENT_BINARY_DIR}
+ )
+
+ set(GLSLANG_SRCS
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Constant.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/InfoSink.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Initialize.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/IntermTraverse.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Intermediate.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ParseHelper.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/PoolAlloc.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/RemoveTree.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Scan.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ShaderLang.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/SymbolTable.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Versions.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/intermOut.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/limits.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/linkValidate.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/parseConst.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/reflection.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/Pp.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpContext.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpMemory.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
+ ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
+ ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp
+ ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/Link.cpp
+ ${GLSLANG_ABS_PATH}/OGLCompilersDLL/InitializeDll.cpp
+
+ ${GLSLANG_ABS_PATH}/SPIRV/GlslangToSpv.cpp
+ ${GLSLANG_ABS_PATH}/SPIRV/SpvBuilder.cpp
+ ${GLSLANG_ABS_PATH}/SPIRV/SPVRemapper.cpp
+ ${GLSLANG_ABS_PATH}/SPIRV/doc.cpp
+ ${GLSLANG_ABS_PATH}/SPIRV/disassemble.cpp
+
+ ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h
+
+ osinclude.h
+ osinclude.cpp
+ )
+
+ set(CMAKE_C_FLAGS ${DE_3RD_PARTY_C_FLAGS})
+ set(CMAKE_CXX_FLAGS ${DE_3RD_PARTY_CXX_FLAGS})
+
+ if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ endif ()
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h
+ COMMAND ${BISON_EXECUTABLE} --defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp
+ MAIN_DEPENDENCY ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/glslang.y
+ WORKING_DIRECTORY ${GLSLANG_ABS_PATH}/glslang)
+
+ add_library(glslang STATIC ${GLSLANG_SRCS})
+ target_link_libraries(glslang dethread ${ZLIB_LIBRARY})
+
+ set(GLSLANG_INCLUDE_PATH ${GLSLANG_ABS_PATH} PARENT_SCOPE)
+ set(GLSLANG_LIBRARY glslang PARENT_SCOPE)
+ set(DEQP_HAVE_GLSLANG ON PARENT_SCOPE)
+
+else ()
+ message(STATUS "glslang not found; GLSL to SPIR-V compilation not available")
+
+ set(DEQP_HAVE_GLSLANG OFF PARENT_SCOPE)
+
+endif ()
diff --git a/external/glslang/osinclude.cpp b/external/glslang/osinclude.cpp
new file mode 100644
index 0000000..9341ec7
--- /dev/null
+++ b/external/glslang/osinclude.cpp
@@ -0,0 +1,96 @@
+/*-------------------------------------------------------------------------
+ * dEQP glslang integration
+ * ------------------------
+ *
+ * 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 glslang OS interface.
+ *//*--------------------------------------------------------------------*/
+
+#include "osinclude.h"
+
+namespace glslang
+{
+
+// Thread-local
+
+OS_TLSIndex OS_AllocTLSIndex (void)
+{
+ return deThreadLocal_create();
+}
+
+bool OS_SetTLSValue (OS_TLSIndex nIndex, void* lpvValue)
+{
+ deThreadLocal_set(nIndex, lpvValue);
+ return true;
+}
+
+bool OS_FreeTLSIndex (OS_TLSIndex nIndex)
+{
+ deThreadLocal_destroy(nIndex);
+ return true;
+}
+
+void* OS_GetTLSValue (OS_TLSIndex nIndex)
+{
+ return deThreadLocal_get(nIndex);
+}
+
+// Global lock - not used
+
+void InitGlobalLock (void)
+{
+}
+
+void GetGlobalLock (void)
+{
+}
+
+void ReleaseGlobalLock (void)
+{
+}
+
+// Threading
+
+DE_STATIC_ASSERT(sizeof(void*) >= sizeof(deThread));
+
+void* OS_CreateThread (TThreadEntrypoint entry)
+{
+ return (void*)(deUintptr)deThread_create(entry, DE_NULL, DE_NULL);
+}
+
+void OS_WaitForAllThreads (void* threads, int numThreads)
+{
+ for (int ndx = 0; ndx < numThreads; ndx++)
+ {
+ const deThread thread = (deThread)(deUintptr)((void**)threads)[ndx];
+ deThread_join(thread);
+ deThread_destroy(thread);
+ }
+}
+
+void OS_Sleep (int milliseconds)
+{
+ deSleep(milliseconds);
+}
+
+void OS_DumpMemoryCounters (void)
+{
+ // Not used
+}
+
+} // glslang
diff --git a/external/glslang/osinclude.h b/external/glslang/osinclude.h
new file mode 100644
index 0000000..7174579
--- /dev/null
+++ b/external/glslang/osinclude.h
@@ -0,0 +1,64 @@
+#ifndef _OSINCLUDE_H
+#define _OSINCLUDE_H
+/*-------------------------------------------------------------------------
+ * dEQP glslang integration
+ * ------------------------
+ *
+ * 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 glslang OS interface.
+ *//*--------------------------------------------------------------------*/
+
+#include "deDefs.hpp"
+#include "deThreadLocal.h"
+#include "deThread.h"
+
+namespace glslang
+{
+
+// Thread-local
+
+typedef deThreadLocal OS_TLSIndex;
+
+#define OS_INVALID_TLS_INDEX DE_NULL
+
+OS_TLSIndex OS_AllocTLSIndex (void);
+bool OS_SetTLSValue (OS_TLSIndex nIndex, void* lpvValue);
+bool OS_FreeTLSIndex (OS_TLSIndex nIndex);
+
+void* OS_GetTLSValue (OS_TLSIndex nIndex);
+
+// Global lock?
+
+void InitGlobalLock (void);
+void GetGlobalLock (void);
+void ReleaseGlobalLock (void);
+
+// Threading
+
+typedef deThreadFunc TThreadEntrypoint;
+
+void* OS_CreateThread (TThreadEntrypoint);
+void OS_WaitForAllThreads (void* threads, int numThreads);
+
+void OS_Sleep (int milliseconds);
+
+void OS_DumpMemoryCounters (void);
+
+} // glslang
+
+#endif /* _OSINCLUDE_H */
diff --git a/framework/common/tcuImageCompare.cpp b/framework/common/tcuImageCompare.cpp
index beb571d..469b095 100644
--- a/framework/common/tcuImageCompare.cpp
+++ b/framework/common/tcuImageCompare.cpp
@@ -101,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);
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/vulkan/CMakeLists.txt b/framework/vulkan/CMakeLists.txt
index 369e82e..b3380b5 100644
--- a/framework/vulkan/CMakeLists.txt
+++ b/framework/vulkan/CMakeLists.txt
@@ -17,11 +17,25 @@
vkMemUtil.hpp
vkDeviceUtil.cpp
vkDeviceUtil.hpp
+ vkGlslToSpirV.cpp
+ vkGlslToSpirV.hpp
)
+# \note Code interfacing with glslang needs to include third-party headers
+# that cause all sorts of warnings to appear.
+set_source_files_properties(
+ FILES vkGlslToSpirV.cpp
+ PROPERTIES COMPILE_FLAGS ${DE_3RD_PARTY_CXX_FLAGS})
+
set(VKUTIL_LIBS
tcutil
)
+if (DEQP_HAVE_GLSLANG)
+ include_directories(${GLSLANG_INCLUDE_PATH})
+ add_definitions(-DDEQP_HAVE_GLSLANG=1)
+ set(VKUTIL_LIBS ${VKUTIL_LIBS} ${GLSLANG_LIBRARY})
+endif ()
+
add_library(vkutil STATIC ${VKUTIL_SRCS})
target_link_libraries(vkutil ${VKUTIL_LIBS})
diff --git a/framework/vulkan/vkGlslToSpirV.cpp b/framework/vulkan/vkGlslToSpirV.cpp
new file mode 100644
index 0000000..193132b
--- /dev/null
+++ b/framework/vulkan/vkGlslToSpirV.cpp
@@ -0,0 +1,261 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program Vulkan 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.
+ *
+ *//*!
+ * \file
+ * \brief GLSL to SPIR-V.
+ *//*--------------------------------------------------------------------*/
+
+#include "vkGlslToSpirV.hpp"
+#include "deArrayUtil.hpp"
+#include "deMemory.h"
+#include "qpDebugOut.h"
+
+#if defined(DEQP_HAVE_GLSLANG)
+# include "deSingleton.h"
+# include "deMutex.hpp"
+
+# include "SPIRV/GlslangToSpv.h"
+# include "glslang/Include/InfoSink.h"
+# include "glslang/Include/ShHandle.h"
+# include "glslang/MachineIndependent/localintermediate.h"
+# include "glslang/Public/ShaderLang.h"
+#endif
+
+namespace vk
+{
+
+using std::string;
+using std::vector;
+
+#if defined(DEQP_HAVE_GLSLANG)
+
+namespace
+{
+
+EShLanguage getGlslangStage (glu::ShaderType type)
+{
+ static const EShLanguage stageMap[] =
+ {
+ EShLangVertex,
+ EShLangFragment,
+ EShLangGeometry,
+ EShLangTessControl,
+ EShLangTessEvaluation,
+ EShLangCompute,
+ };
+ return de::getSizedArrayElement<glu::SHADERTYPE_LAST>(stageMap, type);
+}
+
+static volatile deSingletonState s_glslangInitState = DE_SINGLETON_STATE_NOT_INITIALIZED;
+static de::Mutex s_glslangLock;
+
+void initGlslang (void*)
+{
+ ShInitialize();
+}
+
+void prepareGlslang (void)
+{
+ deInitSingleton(&s_glslangInitState, initGlslang, DE_NULL);
+}
+
+class SpvGenerator : public TCompiler
+{
+public:
+ SpvGenerator (EShLanguage language, std::vector<deUint32>& dst, TInfoSink& infoSink)
+ : TCompiler (language, infoSink)
+ , m_dst (dst)
+ {
+ }
+
+ bool compile (TIntermNode* root, int version = 0, EProfile profile = ENoProfile)
+ {
+ glslang::TIntermediate intermediate(getLanguage(), version, profile);
+ intermediate.setTreeRoot(root);
+ glslang::GlslangToSpv(intermediate, m_dst);
+ return true;
+ }
+
+private:
+ std::vector<deUint32>& m_dst;
+};
+
+// \todo [2015-06-19 pyry] Specialize these per GLSL version
+
+// Fail compilation if more members are added to TLimits or TBuiltInResource
+struct LimitsSizeHelper_s { bool m0, m1, m2, m3, m4, m5, m6, m7, m8; };
+struct BuiltInResourceSizeHelper_s { int m[83]; LimitsSizeHelper_s l; };
+
+DE_STATIC_ASSERT(sizeof(TLimits) == sizeof(LimitsSizeHelper_s));
+DE_STATIC_ASSERT(sizeof(TBuiltInResource) == sizeof(BuiltInResourceSizeHelper_s));
+
+void getDefaultLimits (TLimits* limits)
+{
+ limits->nonInductiveForLoops = true;
+ limits->whileLoops = true;
+ limits->doWhileLoops = true;
+ limits->generalUniformIndexing = true;
+ limits->generalAttributeMatrixVectorIndexing = true;
+ limits->generalVaryingIndexing = true;
+ limits->generalSamplerIndexing = true;
+ limits->generalVariableIndexing = true;
+ limits->generalConstantMatrixVectorIndexing = true;
+}
+
+void getDefaultBuiltInResources (TBuiltInResource* builtin)
+{
+ getDefaultLimits(&builtin->limits);
+
+ builtin->maxLights = 32;
+ builtin->maxClipPlanes = 6;
+ builtin->maxTextureUnits = 32;
+ builtin->maxTextureCoords = 32;
+ builtin->maxVertexAttribs = 64;
+ builtin->maxVertexUniformComponents = 4096;
+ builtin->maxVaryingFloats = 64;
+ builtin->maxVertexTextureImageUnits = 32;
+ builtin->maxCombinedTextureImageUnits = 80;
+ builtin->maxTextureImageUnits = 32;
+ builtin->maxFragmentUniformComponents = 4096;
+ builtin->maxDrawBuffers = 32;
+ builtin->maxVertexUniformVectors = 128;
+ builtin->maxVaryingVectors = 8;
+ builtin->maxFragmentUniformVectors = 16;
+ builtin->maxVertexOutputVectors = 16;
+ builtin->maxFragmentInputVectors = 15;
+ builtin->minProgramTexelOffset = -8;
+ builtin->maxProgramTexelOffset = 7;
+ builtin->maxClipDistances = 8;
+ builtin->maxComputeWorkGroupCountX = 65535;
+ builtin->maxComputeWorkGroupCountY = 65535;
+ builtin->maxComputeWorkGroupCountZ = 65535;
+ builtin->maxComputeWorkGroupSizeX = 1024;
+ builtin->maxComputeWorkGroupSizeX = 1024;
+ builtin->maxComputeWorkGroupSizeZ = 64;
+ builtin->maxComputeUniformComponents = 1024;
+ builtin->maxComputeTextureImageUnits = 16;
+ builtin->maxComputeImageUniforms = 8;
+ builtin->maxComputeAtomicCounters = 8;
+ builtin->maxComputeAtomicCounterBuffers = 1;
+ builtin->maxVaryingComponents = 60;
+ builtin->maxVertexOutputComponents = 64;
+ builtin->maxGeometryInputComponents = 64;
+ builtin->maxGeometryOutputComponents = 128;
+ builtin->maxFragmentInputComponents = 128;
+ builtin->maxImageUnits = 8;
+ builtin->maxCombinedImageUnitsAndFragmentOutputs = 8;
+ builtin->maxCombinedShaderOutputResources = 8;
+ builtin->maxImageSamples = 0;
+ builtin->maxVertexImageUniforms = 0;
+ builtin->maxTessControlImageUniforms = 0;
+ builtin->maxTessEvaluationImageUniforms = 0;
+ builtin->maxGeometryImageUniforms = 0;
+ builtin->maxFragmentImageUniforms = 8;
+ builtin->maxCombinedImageUniforms = 8;
+ builtin->maxGeometryTextureImageUnits = 16;
+ builtin->maxGeometryOutputVertices = 256;
+ builtin->maxGeometryTotalOutputComponents = 1024;
+ builtin->maxGeometryUniformComponents = 1024;
+ builtin->maxGeometryVaryingComponents = 64;
+ builtin->maxTessControlInputComponents = 128;
+ builtin->maxTessControlOutputComponents = 128;
+ builtin->maxTessControlTextureImageUnits = 16;
+ builtin->maxTessControlUniformComponents = 1024;
+ builtin->maxTessControlTotalOutputComponents = 4096;
+ builtin->maxTessEvaluationInputComponents = 128;
+ builtin->maxTessEvaluationOutputComponents = 128;
+ builtin->maxTessEvaluationTextureImageUnits = 16;
+ builtin->maxTessEvaluationUniformComponents = 1024;
+ builtin->maxTessPatchComponents = 120;
+ builtin->maxPatchVertices = 32;
+ builtin->maxTessGenLevel = 64;
+ builtin->maxViewports = 16;
+ builtin->maxVertexAtomicCounters = 0;
+ builtin->maxTessControlAtomicCounters = 0;
+ builtin->maxTessEvaluationAtomicCounters = 0;
+ builtin->maxGeometryAtomicCounters = 0;
+ builtin->maxFragmentAtomicCounters = 8;
+ builtin->maxCombinedAtomicCounters = 8;
+ builtin->maxAtomicCounterBindings = 1;
+ builtin->maxVertexAtomicCounterBuffers = 0;
+ builtin->maxTessControlAtomicCounterBuffers = 0;
+ builtin->maxTessEvaluationAtomicCounterBuffers = 0;
+ builtin->maxGeometryAtomicCounterBuffers = 0;
+ builtin->maxFragmentAtomicCounterBuffers = 1;
+ builtin->maxCombinedAtomicCounterBuffers = 1;
+ builtin->maxAtomicCounterBufferSize = 16384;
+ builtin->maxTransformFeedbackBuffers = 4;
+ builtin->maxTransformFeedbackInterleavedComponents = 64;
+ builtin->maxCullDistances = 8;
+ builtin->maxCombinedClipAndCullDistances = 8;
+ builtin->maxSamples = 4;
+};
+
+} // anonymous
+
+void glslToSpirV (const glu::ProgramSources& program, std::vector<deUint8>& dst)
+{
+ TBuiltInResource builtinRes;
+
+ prepareGlslang();
+ getDefaultBuiltInResources(&builtinRes);
+
+ // \note Compiles only first found shader
+ for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; shaderType++)
+ {
+ if (!program.sources[shaderType].empty())
+ {
+ de::ScopedLock compileLock (s_glslangLock);
+ const char* const srcText = program.sources[shaderType][0].c_str();
+ const int srcLen = (int)program.sources[shaderType][0].size();
+ vector<deUint32> spvBlob;
+ TInfoSink infoSink;
+ SpvGenerator compiler (getGlslangStage(glu::ShaderType(shaderType)), spvBlob, infoSink);
+ const int compileOk = ShCompile(static_cast<ShHandle>(&compiler), &srcText, 1, &srcLen, EShOptNone, &builtinRes, 0);
+
+ if (compileOk == 0)
+ {
+ // \todo [2015-06-19 pyry] Create special CompileException and pass error messages through that
+ qpPrint(infoSink.info.c_str());
+ TCU_FAIL("Failed to compile shader");
+ }
+
+ dst.resize(spvBlob.size() * sizeof(deUint32));
+#if (DE_ENDIANNESS == DE_LITTLE_ENDIAN)
+ deMemcpy(&dst[0], &spvBlob[0], dst.size());
+#else
+# error "Big-endian not supported"
+#endif
+ return;
+ }
+ }
+
+ TCU_THROW(InternalError, "Can't compile empty program");
+}
+
+#else // defined(DEQP_HAVE_GLSLANG)
+
+void glslToSpirV (const glu::ProgramSources&, std::vector<deUint8>&)
+{
+ TCU_THROW(NotSupportedError, "GLSL to SPIR-V compilation not supported (DEQP_HAVE_GLSLANG not defined)");
+}
+
+#endif
+
+} // vk
diff --git a/framework/vulkan/vkGlslToSpirV.hpp b/framework/vulkan/vkGlslToSpirV.hpp
new file mode 100644
index 0000000..2081cc1
--- /dev/null
+++ b/framework/vulkan/vkGlslToSpirV.hpp
@@ -0,0 +1,37 @@
+#ifndef _VKGLSLTOSPIRV_HPP
+#define _VKGLSLTOSPIRV_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program Vulkan 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.
+ *
+ *//*!
+ * \file
+ * \brief GLSL to SPIR-V.
+ *//*--------------------------------------------------------------------*/
+
+#include "vkDefs.hpp"
+#include "gluShaderProgram.hpp"
+
+namespace vk
+{
+
+//! Compile GLSL program to SPIR-V. Will fail with NotSupportedError if compiler is not available.
+void glslToSpirV (const glu::ProgramSources& src, std::vector<deUint8>& dst);
+
+} // vk
+
+#endif // _VKGLSLTOSPIRV_HPP
diff --git a/framework/vulkan/vkPrograms.cpp b/framework/vulkan/vkPrograms.cpp
index 8f78c1f..69f00c0 100644
--- a/framework/vulkan/vkPrograms.cpp
+++ b/framework/vulkan/vkPrograms.cpp
@@ -22,6 +22,7 @@
*//*--------------------------------------------------------------------*/
#include "vkPrograms.hpp"
+#include "vkGlslToSpirV.hpp"
#include "deArrayUtil.hpp"
#include "deMemory.h"
@@ -56,10 +57,6 @@
DE_STATIC_ASSERT(sizeof(BinaryHeader) == sizeof(deUint32)*7);
-#if (DE_ENDIANNESS != DE_LITTLE_ENDIAN)
-# error Big-endian not supported
-#endif
-
size_t computeSrcArrayTotalLength (const vector<string>& sources)
{
size_t total = 0;
@@ -154,38 +151,65 @@
ProgramBinary* buildProgram (const glu::ProgramSources& program, ProgramFormat binaryFormat)
{
- if (binaryFormat == PROGRAM_FORMAT_GLSL)
+ if (binaryFormat == PROGRAM_FORMAT_GLSL_SOURCE)
{
vector<deUint8> binary;
encodeGLSLBinary(program, binary);
return new ProgramBinary(binaryFormat, binary.size(), &binary[0]);
}
+ else if (binaryFormat == PROGRAM_FORMAT_SPIRV)
+ {
+ vector<deUint8> binary;
+ glslToSpirV(program, binary);
+ return new ProgramBinary(binaryFormat, binary.size(), &binary[0]);
+ }
else
TCU_THROW(NotSupportedError, "Unsupported program format");
}
-void setShaderBinary (const DeviceInterface& vk, VkShader shader, const ProgramBinary& binary)
+Move<VkShaderT> createShader (const DeviceInterface& deviceInterface, VkDevice device, const ProgramBinary& binary, VkShaderCreateFlags flags)
{
- DE_UNREF(vk);
- DE_UNREF(shader);
- DE_UNREF(binary);
-#if 0
- if (binary.getFormat() == PROGRAM_FORMAT_GLSL)
+ if (binary.getFormat() == PROGRAM_FORMAT_GLSL_SOURCE)
{
+ // HACK: just concatenate everything
glu::ProgramSources sources;
+ std::string concatenated;
decodeGLSLBinary(binary.getSize(), binary.getBinary(), sources);
for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; shaderType++)
{
- DE_ASSERT(sources.sources[shaderType].size() <= 1);
+ for (size_t ndx = 0; ndx < sources.sources[shaderType].size(); ++ndx)
+ concatenated += sources.sources[shaderType][ndx];
+ }
- if (!sources.sources[shaderType].empty())
- vk.programSetSource(program, getShaderStage(static_cast<glu::ShaderType>(shaderType)), sources.sources[shaderType][0].c_str());
+ {
+ const struct VkShaderCreateInfo shaderInfo =
+ {
+ VK_STRUCTURE_TYPE_SHADER_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (deUintptr)concatenated.size(), // deUintptr codeSize;
+ concatenated.c_str(), // const void* pCode;
+ flags, // VkShaderCreateFlags flags;
+ };
+
+ return createShader(deviceInterface, device, &shaderInfo);
}
}
+ else if (binary.getFormat() == PROGRAM_FORMAT_SPIRV)
+ {
+ const struct VkShaderCreateInfo shaderInfo =
+ {
+ VK_STRUCTURE_TYPE_SHADER_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (deUintptr)binary.getSize(), // deUintptr codeSize;
+ binary.getBinary(), // const void* pCode;
+ flags, // VkShaderCreateFlags flags;
+ };
+
+ return createShader(deviceInterface, device, &shaderInfo);
+ }
else
-#endif
TCU_THROW(NotSupportedError, "Unsupported program format");
}
diff --git a/framework/vulkan/vkPrograms.hpp b/framework/vulkan/vkPrograms.hpp
index c860880..81aebcb 100644
--- a/framework/vulkan/vkPrograms.hpp
+++ b/framework/vulkan/vkPrograms.hpp
@@ -24,6 +24,7 @@
*//*--------------------------------------------------------------------*/
#include "vkDefs.hpp"
+#include "vkRef.hpp"
#include "gluShaderProgram.hpp"
#include "deUniquePtr.hpp"
#include "deSTLUtil.hpp"
@@ -35,7 +36,10 @@
enum ProgramFormat
{
- PROGRAM_FORMAT_GLSL = 0
+ PROGRAM_FORMAT_GLSL_SOURCE = 0,
+ PROGRAM_FORMAT_SPIRV,
+
+ PROGRAM_FORMAT_LAST
};
class ProgramBinary
@@ -152,8 +156,8 @@
typedef ProgramCollection<ProgramBinary> BinaryCollection;
// \todo [2015-03-13 pyry] Likely need BinaryBuilder abstraction for this
-ProgramBinary* buildProgram (const glu::ProgramSources& program, ProgramFormat binaryFormat);
-void setShaderBinary (const DeviceInterface& deviceInterface, VkShader shader, const ProgramBinary& binary);
+ProgramBinary* buildProgram (const glu::ProgramSources& program, ProgramFormat binaryFormat);
+Move<VkShaderT> createShader (const DeviceInterface& deviceInterface, VkDevice device, const ProgramBinary& binary, VkShaderCreateFlags flags);
} // vk
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/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/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/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/gles31/functional/es31fCopyImageTests.cpp b/modules/gles31/functional/es31fCopyImageTests.cpp
index 53f7416..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);
}
}
}
@@ -1796,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_)
{
}
@@ -1811,6 +1819,7 @@
IVec3 dstPos;
int dstLevel;
IVec3 size;
+ IVec3 dstSize; //!< used only for logging
};
int getLastFullLevel (const ImageInfo& info)
@@ -1867,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);
@@ -1875,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);
@@ -1888,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)));
@@ -1901,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));
}
}
}
@@ -1925,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/es31fShaderCommonFunctionTests.cpp b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
index 71613d2..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,6 +1776,17 @@
}
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)
@@ -1942,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
@@ -1982,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/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/vulkan/vktTestPackage.cpp b/modules/vulkan/vktTestPackage.cpp
index f12a5c9..a06687b 100644
--- a/modules/vulkan/vktTestPackage.cpp
+++ b/modules/vulkan/vktTestPackage.cpp
@@ -96,7 +96,7 @@
{
const std::string& name = progIter.getName();
const glu::ProgramSources& srcProg = progIter.getProgram();
- de::MovePtr<vk::ProgramBinary> binProg = de::MovePtr<vk::ProgramBinary>(vk::buildProgram(srcProg, vk::PROGRAM_FORMAT_GLSL));
+ de::MovePtr<vk::ProgramBinary> binProg = de::MovePtr<vk::ProgramBinary>(vk::buildProgram(srcProg, vk::PROGRAM_FORMAT_SPIRV));
m_progCollection.add(name, binProg);
}
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