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