Merge vk-gl-cts/master into aosp/deqp-dev
diff --git a/execserver/tools/xsClient.cpp b/execserver/tools/xsClient.cpp
index e680fc9..49987b7 100644
--- a/execserver/tools/xsClient.cpp
+++ b/execserver/tools/xsClient.cpp
@@ -24,6 +24,7 @@
 #include "xsDefs.hpp"
 #include "xsProtocol.hpp"
 #include "deSocket.hpp"
+#include "deUniquePtr.hpp"
 
 #include "deString.h"
 
@@ -39,7 +40,7 @@
 namespace xs
 {
 
-typedef std::auto_ptr<Message> ScopedMsgPtr;
+typedef de::UniquePtr<Message> ScopedMsgPtr;
 
 class SocketError : public Error
 {
diff --git a/execserver/tools/xsTest.cpp b/execserver/tools/xsTest.cpp
index 5e47377..44483dc 100644
--- a/execserver/tools/xsTest.cpp
+++ b/execserver/tools/xsTest.cpp
@@ -30,6 +30,7 @@
 #include "deBlockBuffer.hpp"
 #include "deThread.hpp"
 #include "deStringUtil.hpp"
+#include "deUniquePtr.hpp"
 
 #include "deClock.h"
 #include "deProcess.h"
@@ -45,7 +46,7 @@
 namespace xs
 {
 
-typedef std::auto_ptr<Message> ScopedMsgPtr;
+typedef de::UniquePtr<Message> ScopedMsgPtr;
 
 class SocketError : public Error
 {
diff --git a/executor/tools/xeCommandLineExecutor.cpp b/executor/tools/xeCommandLineExecutor.cpp
index 2a9af61..d14a1aa 100644
--- a/executor/tools/xeCommandLineExecutor.cpp
+++ b/executor/tools/xeCommandLineExecutor.cpp
@@ -31,6 +31,7 @@
 #include "deCommandLine.hpp"
 #include "deDirectoryIterator.hpp"
 #include "deStringUtil.hpp"
+#include "deUniquePtr.hpp"
 
 #include "deString.h"
 
@@ -604,7 +605,7 @@
 		readLogFile(&batchResult, cmdLine.inFile.c_str());
 
 	// Initialize commLink.
-	std::auto_ptr<xe::CommLink> commLink(createCommLink(cmdLine));
+	de::UniquePtr<xe::CommLink> commLink(createCommLink(cmdLine));
 
 	xe::BatchExecutor executor(cmdLine.targetCfg, commLink.get(), &root, testSet, &batchResult, &infoLog);
 
diff --git a/external/openglcts/CMakeLists.txt b/external/openglcts/CMakeLists.txt
index 2a1a441..8cd93a1 100644
--- a/external/openglcts/CMakeLists.txt
+++ b/external/openglcts/CMakeLists.txt
@@ -6,6 +6,9 @@
 if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
 	# -Wconversion generates a LOT of warnings in this code base
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-conversion")
+
+	# Same for -Wunused-function
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function")
 endif ()
 
 if (EXISTS "${GTF_HOME}/CMakeLists.txt")
diff --git a/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/egl-master.txt b/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/egl-master.txt
index 9c0bf61..bf85b1b 100644
--- a/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/egl-master.txt
+++ b/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/egl-master.txt
@@ -3587,14 +3587,6 @@
 dEQP-EGL.functional.robustness.create_context.query_robust_access
 dEQP-EGL.functional.robustness.create_context.no_reset_notification
 dEQP-EGL.functional.robustness.create_context.lose_context_on_reset
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.vertex
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.fragment
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.vertex_and_fragment
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.compute
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.vertex
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.fragment
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.vertex_and_fragment
-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.compute
 dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.vertex
 dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.fragment
 dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.vertex_and_fragment
diff --git a/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/src/egl-test-issues.txt b/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/src/egl-test-issues.txt
index 1368743..53e5eaf 100644
--- a/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/src/egl-test-issues.txt
+++ b/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.3.x/src/egl-test-issues.txt
@@ -41,3 +41,11 @@
 dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.query_status.fragment
 dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.query_status.vertex_and_fragment
 dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.query_status.compute
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.vertex
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.fragment
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.vertex_and_fragment
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status.compute
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.vertex
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.fragment
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.vertex_and_fragment
+dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.recover_from_reset.compute
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles2-master.txt
index 5053471..0df4368 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles2-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles2-master.txt
@@ -12543,9 +12543,6 @@
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb565_stencil_index8
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb565_depth_component16
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb565_depth_component16_stencil_index8
-dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1
-dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_stencil_index8
-dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_depth_component16
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_depth_component16_stencil_index8
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4
 dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
@@ -12557,7 +12554,6 @@
 dEQP-GLES2.functional.fbo.render.stencil_clear.tex2d_rgba_depth_component16_stencil_index8
 dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb565_stencil_index8
 dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb565_depth_component16_stencil_index8
-dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb5_a1_stencil_index8
 dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb5_a1_depth_component16_stencil_index8
 dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgba4_stencil_index8
 dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgba4_depth_component16_stencil_index8
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles3-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles3-master.txt
index 896fff7..df0a54f 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles3-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/gles3-master.txt
@@ -30638,20 +30638,6 @@
 dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_dst_y
 dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_x
 dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_y
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_x
-dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_y
 dEQP-GLES3.functional.fbo.blit.conversion.rgba32i_to_rgba32i
 dEQP-GLES3.functional.fbo.blit.conversion.rgba32i_to_rgba16i
 dEQP-GLES3.functional.fbo.blit.conversion.rgba32i_to_rgba8i
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles2-test-issues.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles2-test-issues.txt
index 51f3524..258cd3b 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles2-test-issues.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles2-test-issues.txt
@@ -86,3 +86,9 @@
 
 #VK-GL-CTS 249
 dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.61
+
+#VK-GL-CTS 347
+dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1
+dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_stencil_index8
+dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_depth_component16
+dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb5_a1_stencil_index8
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles3-driver-issues.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles3-driver-issues.txt
index 2461ec1..eed044c 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles3-driver-issues.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/src/gles3-driver-issues.txt
@@ -41,3 +41,19 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.smoothstep.mediump_fragment.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.smoothstep.mediump_fragment.vec3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.smoothstep.mediump_fragment.vec4
+
+#VK-GL-CTS 349
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_y
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_y
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_y
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_y
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_y
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_x
+dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_y
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/gles32-khr-master.txt
index 55fbfea..96e023f 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/gles32-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/gles32-khr-master.txt
@@ -303,16 +303,3 @@
 KHR-GLES32.core.draw_buffers_indexed.color_masks
 KHR-GLES32.core.draw_buffers_indexed.blending
 KHR-GLES32.core.draw_buffers_indexed.negative
-KHR-GLES32.context_flags.context_flags.noFlagsSetCase
-KHR-GLES32.context_flags.context_flags.debugFlagSetCase
-KHR-GLES32.context_flags.context_flags.robustFlagSetCase
-KHR-GLES32.context_flags.context_flags.allFlagsSetCase
-KHR-GLES32.robust.robustness.noResetNotification
-KHR-GLES32.robust.robustness.loseContextOnReset
-KHR-GLES32.robust.robustness.getnuniform
-KHR-GLES32.robust.robustness.readnpixels
-KHR-GLES32.robust.robust_buffer_access_behavior.vertex_buffer_objects
-KHR-GLES32.robust.robust_buffer_access_behavior.texel_fetch
-KHR-GLES32.robust.robust_buffer_access_behavior.image_load_store
-KHR-GLES32.robust.robust_buffer_access_behavior.storage_buffer
-KHR-GLES32.robust.robust_buffer_access_behavior.uniform_buffer
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/src/gles32-khr-test-issues.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/src/gles32-khr-test-issues.txt
new file mode 100644
index 0000000..9f7b69a
--- /dev/null
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.3.x/src/gles32-khr-test-issues.txt
@@ -0,0 +1,3 @@
+#VK-GL-CTS 354i
+KHR-GLES32.context_flags.*
+KHR-GLES32.robust.*
diff --git a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp
index fad10b9..dfc5673 100644
--- a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp
+++ b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp
@@ -34,9 +34,10 @@
 
 #include <iomanip>
 
-#include <deMath.h>
-#include <tcuMatrixUtil.hpp>
-#include <tcuVectorUtil.hpp>
+#include "deMath.h"
+#include "deUniquePtr.hpp"
+#include "tcuMatrixUtil.hpp"
+#include "tcuVectorUtil.hpp"
 
 #include <cstdlib>
 #include <cstring>
@@ -15107,7 +15108,7 @@
 	}
 
 	Utils::programInfo			  program(m_context);
-	std::auto_ptr<functionObject> function_object(getFunctionObject(function, type));
+	de::UniquePtr<functionObject> function_object(getFunctionObject(function, type));
 
 	prepareProgram(*function_object, program);
 	prepareTestData(*function_object);
diff --git a/external/openglcts/modules/gl/gl4cKHRDebugTests.cpp b/external/openglcts/modules/gl/gl4cKHRDebugTests.cpp
index 64e3531..0453fe9 100644
--- a/external/openglcts/modules/gl/gl4cKHRDebugTests.cpp
+++ b/external/openglcts/modules/gl/gl4cKHRDebugTests.cpp
@@ -34,6 +34,7 @@
 #include "gluStrUtil.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
+#include "tcuCommandLine.hpp"
 #include "tcuTestLog.hpp"
 //
 //#include <string>
@@ -189,9 +190,20 @@
 	glu::RenderConfig renderCfg(
 		glu::ContextType(m_test_base_context.getRenderContext().getType().getAPI(), glu::CONTEXT_DEBUG));
 
-	parseRenderConfig(&renderCfg, m_test_base_context.getTestContext().getCommandLine());
+	const tcu::CommandLine& commandLine = m_test_base_context.getTestContext().getCommandLine();
+	parseRenderConfig(&renderCfg, commandLine);
 
-	m_rc = createRenderContext(platform, m_test_base_context.getTestContext().getCommandLine(), renderCfg);
+	if (commandLine.getSurfaceType() == tcu::SURFACETYPE_WINDOW)
+	{
+		renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	}
+	else
+	{
+		throw tcu::NotSupportedError("Test not supported in non-windowed context");
+	}
+
+	m_rc = createRenderContext(platform, commandLine, renderCfg);
+	m_rc->makeCurrent();
 }
 
 /** Prepares non-debug context
@@ -202,9 +214,20 @@
 	glu::RenderConfig renderCfg(
 		glu::ContextType(m_test_base_context.getRenderContext().getType().getAPI(), glu::ContextFlags(0)));
 
-	parseRenderConfig(&renderCfg, m_test_base_context.getTestContext().getCommandLine());
+	const tcu::CommandLine& commandLine = m_test_base_context.getTestContext().getCommandLine();
+	parseRenderConfig(&renderCfg, commandLine);
 
-	m_rc = createRenderContext(platform, m_test_base_context.getTestContext().getCommandLine(), renderCfg);
+	if (commandLine.getSurfaceType() == tcu::SURFACETYPE_WINDOW)
+	{
+		renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	}
+	else
+	{
+		throw tcu::NotSupportedError("Test not supported in non-windowed context");
+	}
+
+	m_rc = createRenderContext(platform, commandLine, renderCfg);
+	m_rc->makeCurrent();
 }
 
 /** Finalize rendering context
diff --git a/external/openglcts/modules/gl/gl4cRobustnessTests.cpp b/external/openglcts/modules/gl/gl4cRobustnessTests.cpp
index 3e3adc1..f6af558 100644
--- a/external/openglcts/modules/gl/gl4cRobustnessTests.cpp
+++ b/external/openglcts/modules/gl/gl4cRobustnessTests.cpp
@@ -27,6 +27,7 @@
 #include "gluRenderContext.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
+#include "tcuCommandLine.hpp"
 #include "tcuTestLog.hpp"
 #include <cstring>
 
@@ -78,12 +79,22 @@
 {
 	glu::RenderConfig renderCfg(glu::ContextType(m_context.getRenderContext().getType().getAPI(), glu::CONTEXT_ROBUST));
 
-	glu::parseRenderConfig(&renderCfg, m_context.getTestContext().getCommandLine());
+	const tcu::CommandLine& commandLine = m_context.getTestContext().getCommandLine();
+	glu::parseRenderConfig(&renderCfg, commandLine);
 
-	renderCfg.resetNotificationStrategy = reset;
-	renderCfg.surfaceType				= glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	if (commandLine.getSurfaceType() == tcu::SURFACETYPE_WINDOW)
+	{
+		renderCfg.resetNotificationStrategy = reset;
+		renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	}
+	else
+	{
+		throw tcu::NotSupportedError("Test not supported in non-windowed context");
+	}
 
-	m_robustContext = glu::createRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), renderCfg);
+	m_robustContext = glu::createRenderContext(m_testCtx.getPlatform(), commandLine, renderCfg);
+
+	m_robustContext->makeCurrent();
 }
 
 void RobustnessBase::releaseRobustContext(void)
diff --git a/external/openglcts/modules/gles2/CMakeLists.txt b/external/openglcts/modules/gles2/CMakeLists.txt
index 9ee642e..02b4743 100644
--- a/external/openglcts/modules/gles2/CMakeLists.txt
+++ b/external/openglcts/modules/gles2/CMakeLists.txt
@@ -3,8 +3,6 @@
 set(GLCTS_GLES2_SRCS
 	es2cTestPackage.cpp
 	es2cTestPackage.hpp
-	tes2CapabilityTests.cpp
-	tes2CapabilityTests.hpp
 	)
 
 set(GLCTS_GLES2_LIBS
diff --git a/external/openglcts/modules/gles2/tes2CapabilityTests.cpp b/external/openglcts/modules/gles2/tes2CapabilityTests.cpp
deleted file mode 100644
index 13b8f3f..0000000
--- a/external/openglcts/modules/gles2/tes2CapabilityTests.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/*-------------------------------------------------------------------------
- * OpenGL Conformance Test Suite
- * -----------------------------
- *
- *
- * 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 Capability Tests.
- */ /*-------------------------------------------------------------------*/
-
-#include "tes2CapabilityTests.hpp"
-#include "deStringUtil.hpp"
-#include "gluContextInfo.hpp"
-#include "gluStrUtil.hpp"
-#include "tcuTestLog.hpp"
-
-#include <algorithm>
-#include <iterator>
-
-#include "glw.h"
-
-using tcu::TestLog;
-using std::vector;
-using std::string;
-
-namespace deqp
-{
-namespace gles2
-{
-
-class GetIntCase : public tcu::TestCase
-{
-public:
-	GetIntCase(Context& context, const char* name, const char* description, GLenum param)
-		: tcu::TestCase(context.getTestContext(), tcu::NODETYPE_CAPABILITY, name, description), m_param(param)
-	{
-	}
-
-	IterateResult iterate(void)
-	{
-		GLint value = 0;
-		GLU_CHECK_CALL(glGetIntegerv(m_param, &value));
-
-		m_testCtx.getLog() << TestLog::Message << glu::getParamQueryStr(m_param) << " = " << value
-						   << TestLog::EndMessage;
-
-		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, de::toString(value).c_str());
-		return STOP;
-	}
-
-private:
-	GLenum m_param;
-};
-
-class LimitTests : public TestCaseGroup
-{
-public:
-	LimitTests(Context& context) : TestCaseGroup(context, "limits", "Implementation-defined limits")
-	{
-	}
-
-	void init(void)
-	{
-		static const struct
-		{
-			const char* name;
-			const char* description;
-			GLenum		param;
-		} getIntCases[] = {
-			{ "vertex_attribs", "Number of vertex attributes supported", GL_MAX_VERTEX_ATTRIBS },
-			{ "varying_vectors", "Number of varying vectors supported", GL_MAX_VARYING_VECTORS },
-			{ "vertex_uniform_vectors", "Number of vertex uniform vectors supported", GL_MAX_VERTEX_UNIFORM_VECTORS },
-			{ "fragment_uniform_vectors", "Number of fragment uniform vectors supported",
-			  GL_MAX_FRAGMENT_UNIFORM_VECTORS },
-			{ "texture_image_units", "Number of fragment texture units supported", GL_MAX_TEXTURE_IMAGE_UNITS },
-			{ "vertex_texture_image_units", "Number of vertex texture units supported",
-			  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS },
-			{ "combined_texture_image_units", "Number of vertex and fragment combined texture units supported",
-			  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS },
-			{ "texture_2d_size", "Maximum 2D texture size", GL_MAX_TEXTURE_SIZE },
-			{ "texture_cube_size", "Maximum cubemap texture size", GL_MAX_CUBE_MAP_TEXTURE_SIZE },
-			{ "renderbuffer_size", "Maximum renderbuffer size", GL_MAX_RENDERBUFFER_SIZE },
-		};
-
-		for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(getIntCases); ndx++)
-			addChild(
-				new GetIntCase(m_context, getIntCases[ndx].name, getIntCases[ndx].description, getIntCases[ndx].param));
-	}
-};
-
-class ExtensionCase : public tcu::TestCase
-{
-public:
-	ExtensionCase(tcu::TestContext& testCtx, const glu::ContextInfo& ctxInfo, const char* name, const char* desc,
-				  const char* extName);
-
-	IterateResult iterate(void);
-
-private:
-	const glu::ContextInfo& m_ctxInfo;
-	std::string				m_extName;
-};
-
-ExtensionCase::ExtensionCase(tcu::TestContext& testCtx, const glu::ContextInfo& ctxInfo, const char* name,
-							 const char* desc, const char* extName)
-	: tcu::TestCase(testCtx, tcu::NODETYPE_CAPABILITY, name, desc), m_ctxInfo(ctxInfo), m_extName(extName)
-{
-}
-
-ExtensionCase::IterateResult ExtensionCase::iterate(void)
-{
-	bool isSupported = std::find(m_ctxInfo.getExtensions().begin(), m_ctxInfo.getExtensions().end(), m_extName) !=
-					   m_ctxInfo.getExtensions().end();
-	m_testCtx.setTestResult(isSupported ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_NOT_SUPPORTED,
-							isSupported ? "Supported" : "Not supported");
-	return STOP;
-}
-
-class ExtensionTests : public TestCaseGroup
-{
-public:
-	ExtensionTests(Context& context) : TestCaseGroup(context, "extensions", "Supported extensions")
-	{
-	}
-
-	void init(void)
-	{
-		struct ExtGroup
-		{
-			tcu::TestCaseGroup*		group;
-			const glu::ContextInfo& ctxInfo;
-
-			ExtGroup(TestCaseGroup* parent, const char* name, const char* desc)
-				: group(DE_NULL), ctxInfo(parent->getContext().getContextInfo())
-			{
-				group = new tcu::TestCaseGroup(parent->getTestContext(), name, desc);
-				parent->addChild(group);
-			}
-
-			ExtGroup& operator<<(const char* extName)
-			{
-				group->addChild(new ExtensionCase(group->getTestContext(), ctxInfo, extName, "", extName));
-				return *this;
-			}
-		};
-
-		// Uncompressed formats.
-		ExtGroup(this, "uncompressed_texture_formats", "Uncompressed texture formats")
-			<< "GL_OES_texture_float_linear"
-			<< "GL_OES_texture_half_float_linear"
-			<< "GL_OES_texture_float"
-			<< "GL_OES_texture_half_float"
-			<< "GL_OES_texture_npot"
-			<< "GL_EXT_texture_format_BGRA8888"
-			<< "GL_EXT_texture_rg"
-			<< "GL_EXT_texture_type_2_10_10_10_REV"
-			<< "GL_EXT_sRGB"
-			<< "GL_APPLE_rgb_422"
-			<< "GL_APPLE_texture_format_BGRA8888";
-
-		// Compressed formats.
-		ExtGroup(this, "compressed_texture_formats", "Compressed texture formats")
-			<< "GL_OES_compressed_ETC1_RGB8_texture"
-			<< "GL_OES_compressed_paletted_texture"
-			<< "GL_EXT_texture_compression_dxt1"
-			<< "GL_AMD_compressed_3DC_texture"
-			<< "GL_AMD_compressed_ATC_texture"
-			<< "GL_IMG_texture_compression_pvrtc"
-			<< "GL_NV_texture_compression_s3tc_update";
-
-		// Texture features.
-		ExtGroup(this, "texture", "Texturing features") << "GL_OES_texture_3D"
-														<< "GL_OES_depth_texture"
-														<< "GL_EXT_texture_filter_anisotropic"
-														<< "GL_EXT_texture_lod_bias"
-														<< "GL_EXT_shadow_samplers"
-														<< "GL_EXT_texture_storage"
-														<< "GL_NV_texture_npot_2D_mipmap"
-														<< "GL_APPLE_texture_max_level";
-
-		// FBO features
-		ExtGroup(this, "fbo", "FBO features") << "GL_OES_depth24"
-											  << "GL_OES_depth32"
-											  << "GL_OES_packed_depth_stencil"
-											  << "GL_OES_fbo_render_mipmap"
-											  << "GL_OES_rgb8_rgba8"
-											  << "GL_OES_stencil1"
-											  << "GL_OES_stencil4"
-											  << "GL_OES_stencil8"
-											  << "GL_EXT_color_buffer_half_float"
-											  << "GL_EXT_multisampled_render_to_texture"
-											  << "GL_IMG_multisampled_render_to_texture"
-											  << "GL_ARM_rgba8"
-											  << "GL_NV_depth_nonlinear"
-											  << "GL_NV_draw_buffers"
-											  << "GL_NV_fbo_color_attachments"
-											  << "GL_NV_read_buffer"
-											  << "GL_APPLE_framebuffer_multisample";
-
-		// Vertex data formats.
-		ExtGroup(this, "vertex_data_formats", "Vertex data formats") << "GL_OES_element_index_uint"
-																	 << "GL_OES_vertex_half_float"
-																	 << "GL_OES_vertex_type_10_10_10_2";
-
-		// Shader functionality.
-		ExtGroup(this, "shaders", "Shader features") << "GL_OES_fragment_precision_high"
-													 << "GL_OES_standard_derivatives"
-													 << "GL_EXT_shader_texture_lod"
-													 << "GL_EXT_frag_depth"
-													 << "GL_EXT_separate_shader_objects";
-
-		// Shader binary formats.
-		ExtGroup(this, "shader_binary_formats", "Shader binary formats") << "GL_OES_get_program_binary"
-																		 << "GL_AMD_program_binary_Z400"
-																		 << "GL_IMG_shader_binary"
-																		 << "GL_IMG_program_binary"
-																		 << "GL_ARM_mali_shader_binary"
-																		 << "GL_VIV_shader_binary"
-																		 << "GL_DMP_shader_binary";
-
-		// Development features.
-		ExtGroup(this, "development", "Development aids") << "GL_EXT_debug_label"
-														  << "GL_EXT_debug_marker"
-														  << "GL_AMD_performance_monitor"
-														  << "GL_QCOM_performance_monitor_global_mode"
-														  << "GL_QCOM_extended_get"
-														  << "GL_QCOM_extended_get2";
-
-		// Other extensions.
-		ExtGroup(this, "other", "Other extensions") << "GL_OES_draw_texture"
-													<< "GL_OES_mapbuffer"
-													<< "GL_OES_vertex_array_object"
-													<< "GL_EXT_occlusion_query_boolean"
-													<< "GL_EXT_robustness"
-													<< "GL_EXT_discard_framebuffer"
-													<< "GL_EXT_read_format_bgra"
-													<< "GL_EXT_multi_draw_arrays"
-													<< "GL_EXT_unpack_subimage"
-													<< "GL_EXT_blend_minmax"
-													<< "GL_IMG_read_format"
-													<< "GL_NV_coverage_sample"
-													<< "GL_NV_read_depth_stencil"
-													<< "GL_SUN_multi_draw_arrays";
-	}
-};
-
-CapabilityTests::CapabilityTests(Context& context) : TestCaseGroup(context, "capability", "Capability Tests")
-{
-}
-
-CapabilityTests::~CapabilityTests(void)
-{
-}
-
-void CapabilityTests::init(void)
-{
-	addChild(new LimitTests(m_context));
-	addChild(new ExtensionTests(m_context));
-}
-
-} // gles2
-} // deqp
diff --git a/external/openglcts/modules/gles2/tes2CapabilityTests.hpp b/external/openglcts/modules/gles2/tes2CapabilityTests.hpp
deleted file mode 100644
index b4c6432..0000000
--- a/external/openglcts/modules/gles2/tes2CapabilityTests.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _TES2CAPABILITYTESTS_HPP
-#define _TES2CAPABILITYTESTS_HPP
-/*-------------------------------------------------------------------------
- * OpenGL Conformance Test Suite
- * -----------------------------
- *
- *
- * 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 Capability Tests.
- */ /*-------------------------------------------------------------------*/
-
-#include "tcuDefs.hpp"
-#include "tes2TestCase.hpp"
-
-namespace deqp
-{
-namespace gles2
-{
-
-class CapabilityTests : public TestCaseGroup
-{
-public:
-	CapabilityTests(Context& context);
-	~CapabilityTests(void);
-
-	void init(void);
-
-private:
-	CapabilityTests(const CapabilityTests& other);
-	CapabilityTests& operator=(const CapabilityTests& other);
-};
-
-} // gles2
-} // deqp
-
-#endif // _TES2CAPABILITYTESTS_HPP
diff --git a/external/openglcts/modules/gles32/es32cContextFlagsTests.cpp b/external/openglcts/modules/gles32/es32cContextFlagsTests.cpp
index 9ebb94f..43e02f2 100644
--- a/external/openglcts/modules/gles32/es32cContextFlagsTests.cpp
+++ b/external/openglcts/modules/gles32/es32cContextFlagsTests.cpp
@@ -25,6 +25,7 @@
 #include "gluRenderContext.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
+#include "tcuCommandLine.hpp"
 #include "tcuTestLog.hpp"
 
 namespace es32cts
@@ -58,11 +59,19 @@
 {
 	glu::RenderConfig renderCfg(glu::ContextType(m_context.getRenderContext().getType().getAPI(), ctxFlags));
 
-	glu::parseRenderConfig(&renderCfg, m_context.getTestContext().getCommandLine());
+	const tcu::CommandLine& commandLine = m_context.getTestContext().getCommandLine();
+	glu::parseRenderConfig(&renderCfg, commandLine);
 
-	renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	if (commandLine.getSurfaceType() == tcu::SURFACETYPE_WINDOW)
+	{
+		renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	}
+	else
+	{
+		throw tcu::NotSupportedError("Test not supported in non-windowed context");
+	}
 
-	m_caseContext = glu::createRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), renderCfg);
+	m_caseContext = glu::createRenderContext(m_testCtx.getPlatform(), commandLine, renderCfg);
 	m_caseContext->makeCurrent();
 }
 
diff --git a/external/openglcts/modules/gles32/es32cRobustnessTests.cpp b/external/openglcts/modules/gles32/es32cRobustnessTests.cpp
index 8d8b9ba..a13d511 100644
--- a/external/openglcts/modules/gles32/es32cRobustnessTests.cpp
+++ b/external/openglcts/modules/gles32/es32cRobustnessTests.cpp
@@ -26,6 +26,7 @@
 #include "gluRenderContext.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
+#include "tcuCommandLine.hpp"
 #include "tcuTestLog.hpp"
 
 using namespace glw;
@@ -60,12 +61,20 @@
 {
 	glu::RenderConfig renderCfg(glu::ContextType(m_context.getRenderContext().getType().getAPI(), glu::CONTEXT_ROBUST));
 
-	glu::parseRenderConfig(&renderCfg, m_context.getTestContext().getCommandLine());
+	const tcu::CommandLine& commandLine = m_context.getTestContext().getCommandLine();
+	glu::parseRenderConfig(&renderCfg, commandLine);
 
-	renderCfg.resetNotificationStrategy = reset;
-	renderCfg.surfaceType				= glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	if (commandLine.getSurfaceType() == tcu::SURFACETYPE_WINDOW)
+	{
+		renderCfg.resetNotificationStrategy = reset;
+		renderCfg.surfaceType = glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC;
+	}
+	else
+	{
+		throw tcu::NotSupportedError("Test not supported in non-windowed context");
+	}
 
-	m_robustContext = glu::createRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), renderCfg);
+	m_robustContext = glu::createRenderContext(m_testCtx.getPlatform(), commandLine, renderCfg);
 
 	m_robustContext->makeCurrent();
 }
diff --git a/external/openglcts/scripts/build_mustpass.py b/external/openglcts/scripts/build_mustpass.py
index bc5d331..007e434 100644
--- a/external/openglcts/scripts/build_mustpass.py
+++ b/external/openglcts/scripts/build_mustpass.py
@@ -366,6 +366,52 @@
 					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
 	])
 
+GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS	= [
+		include("gles32-khr-master.txt"),
+		exclude("gles32-khr-test-issues.txt")
+	]
+
+GLCTS_3_2_3_GLES32_KHR_PKG_1CFG			= Package(module = ES32KHR_MODULE, configurations = [
+		# Master
+		Configuration(name			= "khr-master",
+					surfacewidth	= "64",
+					surfaceheight	= "64",
+					baseseed		= "1",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+		Configuration(name			= "khr-master",
+					surfacewidth	= "113",
+					surfaceheight	= "47",
+					baseseed		= "2",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+		Configuration(name			= "khr-master",
+					surfacewidth	= "64",
+					surfaceheight	= "-1",
+					baseseed		= "3",
+					fboconfig		= "rgba8888d24s8",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+		Configuration(name			= "khr-master",
+					surfacewidth	= "-1",
+					surfaceheight	= "64",
+					baseseed		= "3",
+					fboconfig		= "rgba8888d24s8",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+	])
+
+GLCTS_3_2_3_GLES32_KHR_PKG_N1CFG		= Package(module = ES32KHR_MODULE, useforfirsteglconfig = False, configurations = [
+		# Master
+		Configuration(name			= "khr-master",
+					surfacewidth	= "64",
+					surfaceheight	= "64",
+					baseseed		= "1",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+		Configuration(name			= "khr-master",
+					surfacewidth	= "113",
+					surfaceheight	= "47",
+					baseseed		= "2",
+					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
+	])
+
+
 # master
 MASTER_EGL_COMMON_FILTERS			= [include("egl-master.txt"),
 										exclude("egl-test-issues.txt"),
@@ -834,8 +880,8 @@
 						GLCTS_GLES31_GTF_PKG_1CFG,
 						GLCTS_GLES31_KHR_PKG_N1CFG,
 						GLCTS_GLES31_GTF_PKG_N1CFG,
-						GLCTS_GLES32_KHR_PKG_1CFG,
-						GLCTS_GLES32_KHR_PKG_N1CFG,
+						GLCTS_3_2_3_GLES32_KHR_PKG_1CFG,
+						GLCTS_3_2_3_GLES32_KHR_PKG_N1CFG,
 						]),
 
 	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "3.2.3.x", isCurrent=True,
diff --git a/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
index 480eaac..ab4c820 100644
--- a/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
@@ -2,6 +2,5 @@
  * be lost! Modify the generating script instead.
  */
 m_vk.createInstance							= (CreateInstanceFunc)							GET_PROC_ADDR("vkCreateInstance");
-m_vk.getInstanceProcAddr					= (GetInstanceProcAddrFunc)						GET_PROC_ADDR("vkGetInstanceProcAddr");
 m_vk.enumerateInstanceExtensionProperties	= (EnumerateInstanceExtensionPropertiesFunc)	GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
 m_vk.enumerateInstanceLayerProperties		= (EnumerateInstanceLayerPropertiesFunc)		GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
diff --git a/external/vulkancts/framework/vulkan/vkPlatform.cpp b/external/vulkancts/framework/vulkan/vkPlatform.cpp
index 9f4722c..f8beab8 100644
--- a/external/vulkancts/framework/vulkan/vkPlatform.cpp
+++ b/external/vulkancts/framework/vulkan/vkPlatform.cpp
@@ -29,7 +29,9 @@
 
 PlatformDriver::PlatformDriver (const tcu::FunctionLibrary& library)
 {
-#define GET_PROC_ADDR(NAME) library.getFunction(NAME)
+	m_vk.getInstanceProcAddr	= (GetInstanceProcAddrFunc)library.getFunction("vkGetInstanceProcAddr");
+
+#define GET_PROC_ADDR(NAME) m_vk.getInstanceProcAddr(DE_NULL, NAME)
 #include "vkInitPlatformFunctionPointers.inl"
 #undef GET_PROC_ADDR
 }
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index 0c27aa0..05efbad 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -472,14 +472,14 @@
 		}
 	}
 
-	if (limits->viewportBoundsRange[0] > -2 * limits->maxViewportDimensions[0])
+	if (limits->viewportBoundsRange[0] > float(-2 * limits->maxViewportDimensions[0]))
 	{
 		log << TestLog::Message << "limit validation failed, viewPortBoundsRange[0] of " << limits->viewportBoundsRange[0]
 			<< "is larger than -2*maxViewportDimension[0] of " << -2*limits->maxViewportDimensions[0] << TestLog::EndMessage;
 		limitsOk = false;
 	}
 
-	if (limits->viewportBoundsRange[1] < 2 * limits->maxViewportDimensions[1] - 1)
+	if (limits->viewportBoundsRange[1] < float(2 * limits->maxViewportDimensions[1] - 1))
 	{
 		log << TestLog::Message << "limit validation failed, viewportBoundsRange[1] of " << limits->viewportBoundsRange[1]
 			<< "is less than 2*maxViewportDimension[1] of " << 2*limits->maxViewportDimensions[1] << TestLog::EndMessage;
@@ -673,6 +673,7 @@
 		"VK_KHR_maintenance1",
 		"VK_KHR_push_descriptor",
 		"VK_KHR_descriptor_update_template",
+		"VK_KHR_incremental_present",
 	};
 
 	checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions);
diff --git a/external/vulkancts/modules/vulkan/robustness/vktRobustnessBufferAccessTests.cpp b/external/vulkancts/modules/vulkan/robustness/vktRobustnessBufferAccessTests.cpp
index 035d4cd..d4688ba 100644
--- a/external/vulkancts/modules/vulkan/robustness/vktRobustnessBufferAccessTests.cpp
+++ b/external/vulkancts/modules/vulkan/robustness/vktRobustnessBufferAccessTests.cpp
@@ -798,8 +798,8 @@
 	{
 		struct IndicesBuffer
 		{
-			int32_t inIndex;
-			int32_t outIndex;
+			deInt32 inIndex;
+			deInt32 outIndex;
 		};
 
 		IndicesBuffer indices = { 0, 0 };
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
index 38ab5e7..a1292b7 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
@@ -1064,10 +1064,10 @@
 template <typename T0 = Void, typename T1 = Void, typename T2 = Void, typename T3 = Void>
 struct Tuple4
 {
-	explicit Tuple4 (const T0& e0 = T0(),
-					 const T1& e1 = T1(),
-					 const T2& e2 = T2(),
-					 const T3& e3 = T3())
+	explicit Tuple4 (const T0 e0 = T0(),
+					 const T1 e1 = T1(),
+					 const T2 e2 = T2(),
+					 const T3 e3 = T3())
 		: a	(e0)
 		, b	(e1)
 		, c	(e2)
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
index 1195a37..a3e65f0 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
@@ -205,7 +205,7 @@
 		else
 			throw tcu::TestError("invalid data type for u_arr");
 
-			instance.addUniform(5u, vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, sizeof(Vec4) * 4, arr[0].getPtr());
+		instance.addUniform(5u, vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, sizeof(Vec4) * 4, arr[0].getPtr());
 	}
 }
 
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
index 6c66d37..790a302 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
@@ -52,7 +52,7 @@
  *//*--------------------------------------------------------------------*/
 Move<VkBuffer> createBufferAndBindMemory (const DeviceInterface& vkdi, const VkDevice& device, VkDescriptorType dtype, Allocator& allocator, size_t numBytes, AllocationMp* outMemory)
 {
-	VkBufferUsageFlagBits		usageBit		= (VkBufferUsageFlagBits)0;
+	VkBufferUsageFlags			usageBit		= (VkBufferUsageFlags)0;
 
 	switch (dtype)
 	{
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
index b901d17..e78fd20 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
@@ -2008,14 +2008,14 @@
 {
 	const VkBufferCreateInfo	resourceBufferParams	=
 	{
-		VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,			// sType
-		DE_NULL,										// pNext
-		(VkBufferCreateFlags)0,							// flags
-		(VkDeviceSize)resource.second->getNumBytes(),	// size
-		getMatchingBufferUsageFlagBit(resource.first),	// usage
-		VK_SHARING_MODE_EXCLUSIVE,						// sharingMode
-		1u,												// queueFamilyCount
-		&queueFamilyIndex,								// pQueueFamilyIndices
+		VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,								// sType
+		DE_NULL,															// pNext
+		(VkBufferCreateFlags)0,												// flags
+		(VkDeviceSize)resource.second->getNumBytes(),						// size
+		(VkBufferUsageFlags)getMatchingBufferUsageFlagBit(resource.first),	// usage
+		VK_SHARING_MODE_EXCLUSIVE,											// sharingMode
+		1u,																	// queueFamilyCount
+		&queueFamilyIndex,													// pQueueFamilyIndices
 	};
 
 	return createBuffer(vk, vkDevice, &resourceBufferParams);
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
index 9b4d5b0..fe8ea1e 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
@@ -2126,6 +2126,8 @@
 	{
 		for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
 		{
+			const vk::VkBuffer uniformBuffer = m_uniformBuffers[blockNdx].get()->get();
+
 			const vk::VkBufferMemoryBarrier barrier	=
 			{
 				vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
@@ -2134,7 +2136,7 @@
 				vk::VK_ACCESS_HOST_READ_BIT,
 				VK_QUEUE_FAMILY_IGNORED,
 				VK_QUEUE_FAMILY_IGNORED,
-				static_cast<vk::VkBuffer>(*m_uniformBuffers[blockNdx]),
+				uniformBuffer,
 				0u,
 				static_cast<vk::VkDeviceSize>(bufferSizes[blockNdx])
 			};
@@ -2143,6 +2145,8 @@
 	}
 	else
 	{
+		const vk::VkBuffer uniformBuffer = m_uniformBuffers[0].get()->get();
+
 		vk::VkDeviceSize totalSize	= 0;
 		for (size_t bufferNdx = 0; bufferNdx < bufferSizes.size(); bufferNdx++)
 			totalSize += bufferSizes[bufferNdx];
@@ -2155,7 +2159,7 @@
 			vk::VK_ACCESS_HOST_READ_BIT,
 			VK_QUEUE_FAMILY_IGNORED,
 			VK_QUEUE_FAMILY_IGNORED,
-			static_cast<vk::VkBuffer>(*m_uniformBuffers[0]),
+			uniformBuffer,
 			0u,
 			totalSize
 		};
diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp
index 9f17879..0421c6b 100644
--- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp
+++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp
@@ -704,7 +704,7 @@
 	};
 
 	std::vector<VkDynamicState> dynamicStates;
-	if (!haveRenderSize)
+	if (!haveRenderSize && !isRasterizationDisabled)
 	{
 		dynamicStates.push_back(VK_DYNAMIC_STATE_VIEWPORT);
 		dynamicStates.push_back(VK_DYNAMIC_STATE_SCISSOR);
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
index 8747e54..f987a81 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
@@ -136,9 +136,13 @@
 					renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), 0.05f, tcu::COMPARE_LOG_RESULT))
 				return tcu::TestStatus::fail("Fail");
 
-			if (floatThresholdCompare (m_context.getTestContext().getLog(), "Expecting comparison to fail", "Expecting comparison to fail",
-					renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), Vec4(0.05f), tcu::COMPARE_LOG_RESULT))
-				return tcu::TestStatus::fail("Fail");
+			// Anisotropic filtering is implementation dependent. Expecting differences with minification/magnification filter set to NEAREST is too strict.
+			if (m_refParams.minFilter != tcu::Sampler::NEAREST && m_refParams.magFilter != tcu::Sampler::NEAREST)
+			{
+				if (floatThresholdCompare (m_context.getTestContext().getLog(), "Expecting comparison to fail", "Expecting comparison to fail",
+							   renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), Vec4(0.05f), tcu::COMPARE_LOG_RESULT))
+					return tcu::TestStatus::fail("Fail");
+			}
 		}
 		return tcu::TestStatus::pass("Pass");
 	}
diff --git a/external/vulkancts/mustpass/1.0.1/src/master.txt b/external/vulkancts/mustpass/1.0.1/src/master.txt
index 4f776f8..d893df3 100644
--- a/external/vulkancts/mustpass/1.0.1/src/master.txt
+++ b/external/vulkancts/mustpass/1.0.1/src/master.txt
@@ -84911,30 +84911,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -84959,20 +84935,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.1/vk-default.txt b/external/vulkancts/mustpass/1.0.1/vk-default.txt
index 4f776f8..d893df3 100644
--- a/external/vulkancts/mustpass/1.0.1/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.1/vk-default.txt
@@ -84911,30 +84911,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -84959,20 +84935,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.2/src/master.txt b/external/vulkancts/mustpass/1.0.2/src/master.txt
index 74f0245..0c606ef 100644
--- a/external/vulkancts/mustpass/1.0.2/src/master.txt
+++ b/external/vulkancts/mustpass/1.0.2/src/master.txt
@@ -104913,30 +104913,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -104961,20 +104937,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt
index 74f0245..0c606ef 100644
--- a/external/vulkancts/mustpass/1.0.2/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt
@@ -104913,30 +104913,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -104961,20 +104937,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.3/src/waivers.txt b/external/vulkancts/mustpass/1.0.3/src/waivers.txt
new file mode 100644
index 0000000..1b9e7d8
--- /dev/null
+++ b/external/vulkancts/mustpass/1.0.3/src/waivers.txt
@@ -0,0 +1,50 @@
+#
+# VK-GL-CTS Issue #336
+#
+# This occurs on some versions of Imagination Technologies G6200, G6230, G6400, and G6430
+# Rogue Series 6 GPU's.
+#
+# The affected GPU's are unable to correctly filter CEM corners with F32 textures, this
+# includes the ability to gather texels for texel gather instructions.
+#
+# An application using gather on an F32 texture would obtain incorrect texel values around
+# the corners of the cubemap.
+#
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
diff --git a/external/vulkancts/mustpass/1.0.3/vk-default.txt b/external/vulkancts/mustpass/1.0.3/vk-default.txt
index 3527ac7..ee733d6 100644
--- a/external/vulkancts/mustpass/1.0.3/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.3/vk-default.txt
@@ -167848,30 +167848,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
 dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -167896,20 +167872,6 @@
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
 dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
 dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/scripts/build_mustpass.py b/external/vulkancts/scripts/build_mustpass.py
index 7e373b7..fdd051b 100644
--- a/external/vulkancts/scripts/build_mustpass.py
+++ b/external/vulkancts/scripts/build_mustpass.py
@@ -81,7 +81,8 @@
 						filters		= [include("master.txt"),
 									   exclude("test-issues.txt"),
 									   exclude("excluded-tests.txt"),
-									   exclude("android-tests.txt")]),
+									   exclude("android-tests.txt"),
+									   exclude("waivers.txt")]),
 	 ])
 
 MUSTPASS_LISTS		= [
diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
index fde3e6c..18eb63f 100644
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -552,10 +552,10 @@
 def writeFunctionPointers (api, filename, functionTypes):
 	writeInlFile(filename, INL_HEADER, indentLines(["%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function)) for function in api.functions if function.getType() in functionTypes]))
 
-def writeInitFunctionPointers (api, filename, functionTypes):
+def writeInitFunctionPointers (api, filename, functionTypes, cond = None):
 	def makeInitFunctionPointers ():
 		for function in api.functions:
-			if function.getType() in functionTypes:
+			if function.getType() in functionTypes and (cond == None or cond(function)):
 				yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
 
 	writeInlFile(filename, INL_HEADER, indentLines(makeInitFunctionPointers()))
@@ -929,7 +929,7 @@
 	writeFunctionPointers		(api, os.path.join(VULKAN_DIR, "vkPlatformFunctionPointers.inl"),		functionTypes = platformFuncs)
 	writeFunctionPointers		(api, os.path.join(VULKAN_DIR, "vkInstanceFunctionPointers.inl"),		functionTypes = instanceFuncs)
 	writeFunctionPointers		(api, os.path.join(VULKAN_DIR, "vkDeviceFunctionPointers.inl"),			functionTypes = deviceFuncs)
-	writeInitFunctionPointers	(api, os.path.join(VULKAN_DIR, "vkInitPlatformFunctionPointers.inl"),	functionTypes = platformFuncs)
+	writeInitFunctionPointers	(api, os.path.join(VULKAN_DIR, "vkInitPlatformFunctionPointers.inl"),	functionTypes = platformFuncs,	cond = lambda f: f.name != "vkGetInstanceProcAddr")
 	writeInitFunctionPointers	(api, os.path.join(VULKAN_DIR, "vkInitInstanceFunctionPointers.inl"),	functionTypes = instanceFuncs)
 	writeInitFunctionPointers	(api, os.path.join(VULKAN_DIR, "vkInitDeviceFunctionPointers.inl"),		functionTypes = deviceFuncs)
 	writeFuncPtrInterfaceImpl	(api, os.path.join(VULKAN_DIR, "vkPlatformDriverImpl.inl"),				functionTypes = platformFuncs,	className = "PlatformDriver")
diff --git a/framework/common/tcuTexVerifierUtil.cpp b/framework/common/tcuTexVerifierUtil.cpp
index bdc1efa..425e037 100644
--- a/framework/common/tcuTexVerifierUtil.cpp
+++ b/framework/common/tcuTexVerifierUtil.cpp
@@ -125,7 +125,7 @@
 
 static inline int mirror (int a)
 {
-	return a >= 0.0f ? a : -(1 + a);
+	return a >= 0 ? a : -(1 + a);
 }
 
 int wrap (Sampler::WrapMode mode, int c, int size)
diff --git a/framework/common/tcuTexture.cpp b/framework/common/tcuTexture.cpp
index d61b134..52b6cf8 100644
--- a/framework/common/tcuTexture.cpp
+++ b/framework/common/tcuTexture.cpp
@@ -1520,7 +1520,7 @@
 
 static inline int mirror (int a)
 {
-	return a >= 0.0f ? a : -(1 + a);
+	return a >= 0 ? a : -(1 + a);
 }
 
 // Nearest-even rounding in case of tie (fractional part 0.5), otherwise ordinary rounding.
diff --git a/framework/delibs/cmake/CFlags.cmake b/framework/delibs/cmake/CFlags.cmake
index 7d2c5bf..8a4b9ad 100644
--- a/framework/delibs/cmake/CFlags.cmake
+++ b/framework/delibs/cmake/CFlags.cmake
@@ -47,7 +47,7 @@
 	set(WARNING_FLAGS			"-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion")
 
 	set(CMAKE_C_FLAGS			"${TARGET_FLAGS} ${WARNING_FLAGS} ${CMAKE_C_FLAGS} -std=c90 -pedantic ")
-	set(CMAKE_CXX_FLAGS			"${TARGET_FLAGS} ${WARNING_FLAGS} ${CMAKE_CXX_FLAGS} -Wno-delete-non-virtual-dtor")
+	set(CMAKE_CXX_FLAGS			"${TARGET_FLAGS} ${WARNING_FLAGS} ${CMAKE_CXX_FLAGS} -std=c++03 -Wno-delete-non-virtual-dtor")
 
 	# Force compiler to generate code where integers have well defined overflow
 	# Turn on -Wstrict-overflow=5 and check all warnings before removing
diff --git a/framework/egl/wrapper/eglwImplExt.inl b/framework/egl/wrapper/eglwImplExt.inl
index 43fcad1..9002700 100644
--- a/framework/egl/wrapper/eglwImplExt.inl
+++ b/framework/egl/wrapper/eglwImplExt.inl
@@ -6,10 +6,10 @@
 
 EGLint eglwClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
 {
-									const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLint)0;
-		return egl->clientWaitSyncKHR(dpy, sync, flags, timeout);
+	return egl->clientWaitSyncKHR(dpy, sync, flags, timeout);
 }
 
 EGLImageKHR eglwCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
@@ -38,7 +38,7 @@
 
 EGLSyncKHR eglwCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
 {
-												const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLSyncKHR)0;
 	return egl->createSyncKHR(dpy, type, attrib_list);
@@ -46,7 +46,7 @@
 
 EGLBoolean eglwDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image)
 {
-																	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->destroyImageKHR(dpy, image);
@@ -54,7 +54,7 @@
 
 EGLBoolean eglwDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync)
 {
-																		const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->destroySyncKHR(dpy, sync);
@@ -62,7 +62,7 @@
 
 EGLDisplay eglwGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list)
 {
-							const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLDisplay)0;
 	return egl->getPlatformDisplayEXT(platform, native_display, attrib_list);
@@ -70,7 +70,7 @@
 
 EGLBoolean eglwGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
 {
-									const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->getSyncAttribKHR(dpy, sync, attribute, value);
@@ -78,7 +78,7 @@
 
 EGLBoolean eglwLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list)
 {
-										const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->lockSurfaceKHR(dpy, surface, attrib_list);
@@ -86,7 +86,7 @@
 
 EGLBoolean eglwSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects)
 {
-								const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->setDamageRegionKHR(dpy, surface, rects, n_rects);
@@ -94,7 +94,7 @@
 
 EGLBoolean eglwSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
 {
-														const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->signalSyncKHR(dpy, sync, mode);
@@ -102,7 +102,7 @@
 
 EGLBoolean eglwSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects)
 {
-							const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->swapBuffersWithDamageKHR(dpy, surface, rects, n_rects);
@@ -110,7 +110,7 @@
 
 EGLBoolean eglwUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface)
 {
-																const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLBoolean)0;
 	return egl->unlockSurfaceKHR(dpy, surface);
@@ -118,8 +118,8 @@
 
 EGLint eglwWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)
 {
-																const eglw::Library* egl = eglw::getCurrentThreadLibrary();
+	const eglw::Library* egl = eglw::getCurrentThreadLibrary();
 	if (!egl)
 		return (EGLint)0;
-		return egl->waitSyncKHR(dpy, sync, flags);
+	return egl->waitSyncKHR(dpy, sync, flags);
 }
diff --git a/framework/opengl/simplereference/sglrReferenceContext.cpp b/framework/opengl/simplereference/sglrReferenceContext.cpp
index e5f443b..288b0a9 100644
--- a/framework/opengl/simplereference/sglrReferenceContext.cpp
+++ b/framework/opengl/simplereference/sglrReferenceContext.cpp
@@ -2068,12 +2068,12 @@
 			if (texObj->getType() == Texture::TYPE_2D_ARRAY || texObj->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
 			{
 				RC_IF_ERROR((layer < 0) || (layer >= GL_MAX_ARRAY_TEXTURE_LAYERS),		GL_INVALID_VALUE,		RC_RET_VOID);
-				RC_IF_ERROR((level < 0) || (level > deFloatLog2(GL_MAX_TEXTURE_SIZE)),	GL_INVALID_VALUE,		RC_RET_VOID);
+				RC_IF_ERROR((level < 0) || (level > deLog2Floor32(GL_MAX_TEXTURE_SIZE)),GL_INVALID_VALUE,		RC_RET_VOID);
 			}
 			else if	(texObj->getType() == Texture::TYPE_3D)
 			{
 				RC_IF_ERROR((layer < 0) || (layer >= GL_MAX_3D_TEXTURE_SIZE),				GL_INVALID_VALUE,		RC_RET_VOID);
-				RC_IF_ERROR((level < 0) || (level > deFloatLog2(GL_MAX_3D_TEXTURE_SIZE)),	GL_INVALID_VALUE,		RC_RET_VOID);
+				RC_IF_ERROR((level < 0) || (level > deLog2Floor32(GL_MAX_3D_TEXTURE_SIZE)),	GL_INVALID_VALUE,		RC_RET_VOID);
 			}
 		}
 
diff --git a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
index b5335a6..bc13aad 100644
--- a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
+++ b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
@@ -722,7 +722,6 @@
 
 	void			start			(void);
 	void			join			(void);
-	void			log				(TestLog& log);
 
 	bool			resultOk		(void) { return m_isOk; }
 
@@ -765,12 +764,6 @@
 	m_contexts.clear();
 }
 
-void TestThread::log (TestLog& testLog)
-{
-	if (!m_isOk)
-		testLog << TestLog::Message << "Thread failed: " << m_errorString << TestLog::EndMessage;
-}
-
 void TestThread::start (void)
 {
 	m_startBeginUs = deGetMicroseconds();
diff --git a/modules/egl/teglRenderCase.cpp b/modules/egl/teglRenderCase.cpp
index a0ff8ae..4662487 100644
--- a/modules/egl/teglRenderCase.cpp
+++ b/modules/egl/teglRenderCase.cpp
@@ -158,7 +158,7 @@
 
 		try
 		{
-			std::auto_ptr<eglu::NativePixmap>	pixmap		(pixmapFactory.createPixmap(&nativeDisplay, display, config, DE_NULL, width, height));
+			de::UniquePtr<eglu::NativePixmap>	pixmap		(pixmapFactory.createPixmap(&nativeDisplay, display, config, DE_NULL, width, height));
 			EGLSurface							eglSurface	= createPixmapSurface(nativeDisplay, *pixmap, display, config, DE_NULL);
 			eglu::UniqueSurface					surface		(egl, display, eglSurface);
 
diff --git a/modules/gles2/functional/es2fIntegerStateQueryTests.cpp b/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
index 2b736d7..ed5831c 100644
--- a/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
+++ b/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
@@ -589,9 +589,9 @@
 	if (!state.verifyValidity(testCtx))
 		return;
 
-	if (GLuint(state) < GLfloat(reference))
+	if (state < GLfloat(reference))
 	{
-		testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << GLuint(state) << TestLog::EndMessage;
+		testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << state << TestLog::EndMessage;
 		if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
 			testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid float value");
 	}
diff --git a/modules/gles2/functional/es2fShaderInvarianceTests.cpp b/modules/gles2/functional/es2fShaderInvarianceTests.cpp
index d404ba6..04f3a68 100644
--- a/modules/gles2/functional/es2fShaderInvarianceTests.cpp
+++ b/modules/gles2/functional/es2fShaderInvarianceTests.cpp
@@ -402,7 +402,6 @@
 {
 public:
 								BasicInvarianceTest		(Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2);
-								BasicInvarianceTest		(Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader);
 	ShaderPair					genShaders				(void) const;
 
 private:
@@ -428,14 +427,6 @@
 {
 }
 
-BasicInvarianceTest::BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader)
-	: InvarianceTest	(ctx, name, desc)
-	, m_vertexShader1	(vertexShader1)
-	, m_vertexShader2	(vertexShader2)
-	, m_fragmentShader	(fragmentShader)
-{
-}
-
 BasicInvarianceTest::ShaderPair BasicInvarianceTest::genShaders (void) const
 {
 	ShaderPair retVal;
diff --git a/modules/gles2/functional/es2fUniformApiTests.cpp b/modules/gles2/functional/es2fUniformApiTests.cpp
index ff05e27..04d14fc 100644
--- a/modules/gles2/functional/es2fUniformApiTests.cpp
+++ b/modules/gles2/functional/es2fUniformApiTests.cpp
@@ -773,7 +773,6 @@
 		FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX	= 1<<7
 	};
 
-								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
 								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
 								UniformCase		(Context& context, const char* name, const char* description, deUint32 seed); // \note Randomizes caseType, uniformCollection and features.
 	virtual						~UniformCase	(void);
@@ -947,15 +946,6 @@
 {
 }
 
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
-	: TestCase				(context, name, description)
-	, CallLogWrapper		(context.getRenderContext().getFunctions(), m_testCtx.getLog())
-	, m_features			(0)
-	, m_uniformCollection	(uniformCollection)
-	, m_caseShaderType		(caseShaderType)
-{
-}
-
 UniformCase::UniformCase (Context& context, const char* name, const char* description, const deUint32 seed)
 	: TestCase				(context, name, description)
 	, CallLogWrapper		(context.getRenderContext().getFunctions(), m_testCtx.getLog())
diff --git a/modules/gles3/functional/es3fFboTestUtil.cpp b/modules/gles3/functional/es3fFboTestUtil.cpp
index 5e2e4f2..7dbabbd 100644
--- a/modules/gles3/functional/es3fFboTestUtil.cpp
+++ b/modules/gles3/functional/es3fFboTestUtil.cpp
@@ -68,10 +68,10 @@
 template <typename T>
 static tcu::Vector<T, 4> castVectorSaturate (const tcu::Vec4& in)
 {
-	return tcu::Vector<T, 4>((in.x() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.x() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
-	                         (in.y() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.y() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
-							 (in.z() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.z() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
-							 (in.w() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.w() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
+	return tcu::Vector<T, 4>(((double)in.x() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.x() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
+	                         ((double)in.y() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.y() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
+							 ((double)in.z() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.z() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
+							 ((double)in.w() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.w() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
 }
 
 FlatColorShader::FlatColorShader (glu::DataType outputType)
diff --git a/modules/gles3/functional/es3fIntegerStateQueryTests.cpp b/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
index 4837128..16c11b4 100644
--- a/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
+++ b/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
@@ -827,9 +827,9 @@
 	if (!state.verifyValidity(testCtx))
 		return;
 
-	if (GLuint(state) < GLfloat(reference))
+	if (state < GLfloat(reference))
 	{
-		testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << GLuint(state) << TestLog::EndMessage;
+		testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << state << TestLog::EndMessage;
 		if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
 			testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid float value");
 	}
diff --git a/modules/gles3/functional/es3fShaderInvarianceTests.cpp b/modules/gles3/functional/es3fShaderInvarianceTests.cpp
index 765598a..cceba6a 100644
--- a/modules/gles3/functional/es3fShaderInvarianceTests.cpp
+++ b/modules/gles3/functional/es3fShaderInvarianceTests.cpp
@@ -402,7 +402,6 @@
 {
 public:
 								BasicInvarianceTest		(Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2);
-								BasicInvarianceTest		(Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader);
 	ShaderPair					genShaders				(void) const;
 
 private:
@@ -430,14 +429,6 @@
 {
 }
 
-BasicInvarianceTest::BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader)
-	: InvarianceTest	(ctx, name, desc)
-	, m_vertexShader1	(vertexShader1)
-	, m_vertexShader2	(vertexShader2)
-	, m_fragmentShader	(fragmentShader)
-{
-}
-
 BasicInvarianceTest::ShaderPair BasicInvarianceTest::genShaders (void) const
 {
 	ShaderPair retVal;
diff --git a/modules/gles3/functional/es3fUniformApiTests.cpp b/modules/gles3/functional/es3fUniformApiTests.cpp
index be953af..07fdd53 100644
--- a/modules/gles3/functional/es3fUniformApiTests.cpp
+++ b/modules/gles3/functional/es3fUniformApiTests.cpp
@@ -938,7 +938,6 @@
 		FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX	= 1<<9
 	};
 
-								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
 								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
 								UniformCase		(Context& context, const char* name, const char* description, deUint32 seed); // \note Randomizes caseType, uniformCollection and features.
 	virtual						~UniformCase	(void);
@@ -1118,15 +1117,6 @@
 {
 }
 
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
-	: TestCase				(context, name, description)
-	, CallLogWrapper		(context.getRenderContext().getFunctions(), m_testCtx.getLog())
-	, m_features			(0)
-	, m_uniformCollection	(uniformCollection)
-	, m_caseShaderType		(caseShaderType)
-{
-}
-
 UniformCase::UniformCase (Context& context, const char* name, const char* description, const deUint32 seed)
 	: TestCase				(context, name, description)
 	, CallLogWrapper		(context.getRenderContext().getFunctions(), m_testCtx.getLog())
diff --git a/modules/gles31/functional/es31fFboTestUtil.cpp b/modules/gles31/functional/es31fFboTestUtil.cpp
index f3388a4..4d8ade1 100644
--- a/modules/gles31/functional/es31fFboTestUtil.cpp
+++ b/modules/gles31/functional/es31fFboTestUtil.cpp
@@ -68,10 +68,10 @@
 template <typename T>
 static tcu::Vector<T, 4> castVectorSaturate (const tcu::Vec4& in)
 {
-	return tcu::Vector<T, 4>((in.x() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.x() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
-	                         (in.y() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.y() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
-							 (in.z() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.z() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
-							 (in.w() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.w() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
+	return tcu::Vector<T, 4>(((double)in.x() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.x() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
+	                         ((double)in.y() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.y() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
+							 ((double)in.z() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.z() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
+							 ((double)in.w() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.w() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
 }
 
 static string genTexFragmentShader (const vector<glu::DataType>& samplerTypes, glu::DataType outputType)
diff --git a/modules/gles31/functional/es31fMultisampleTests.cpp b/modules/gles31/functional/es31fMultisampleTests.cpp
index 5fe3edf..a4efbe4 100644
--- a/modules/gles31/functional/es31fMultisampleTests.cpp
+++ b/modules/gles31/functional/es31fMultisampleTests.cpp
@@ -174,7 +174,6 @@
 
 protected:
 	void						renderTriangle				(const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const;
-	void						renderTriangle				(const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& color) const;
 	void						renderTriangle				(const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const;
 	void						renderTriangle				(const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& color) const;
 	void						renderQuad					(const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec2& p3, const Vec4& c0, const Vec4& c1, const Vec4& c2, const Vec4& c3) const;
@@ -344,11 +343,6 @@
 	GLU_EXPECT_NO_ERROR(gl.getError(), "drawArrays");
 }
 
-void DefaultFBOMultisampleCase::renderTriangle (const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& color) const
-{
-	renderTriangle(p0, p1, p2, color, color, color);
-}
-
 void DefaultFBOMultisampleCase::renderTriangle (const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const
 {
 	renderTriangle(Vec3(p0.x(), p0.y(), 0.0f),
diff --git a/modules/gles31/functional/es31fNegativeComputeTests.cpp b/modules/gles31/functional/es31fNegativeComputeTests.cpp
index cc96e55..7aeee99 100644
--- a/modules/gles31/functional/es31fNegativeComputeTests.cpp
+++ b/modules/gles31/functional/es31fNegativeComputeTests.cpp
@@ -248,7 +248,7 @@
 
 		ctx.beginSection("GL_INVALID_OPERATION error is generated if the sum of the number of active samplers for each active program exceeds the maximum number of texture image units allowed");
 		ctx.glDispatchCompute(1, 1, 1);
-		ctx.expectError(GL_INVALID_VALUE);
+		ctx.expectError(GL_INVALID_OPERATION);
 		ctx.endSection();
 	}
 }
diff --git a/modules/gles31/functional/es31fNegativeSSBOBlockTests.cpp b/modules/gles31/functional/es31fNegativeSSBOBlockTests.cpp
index bddd035..358b7a2 100644
--- a/modules/gles31/functional/es31fNegativeSSBOBlockTests.cpp
+++ b/modules/gles31/functional/es31fNegativeSSBOBlockTests.cpp
@@ -76,16 +76,7 @@
 	void			setSingleValue						(const SsboArgData argData);
 	bool			setAllValues						(const std::vector<SsboArgData> argDataList);
 
-	const std::string&	getContextVersion				(void) const;
-	const std::string&	getStdFormat					(void) const;
-	const std::string&	getBindingPoint					(void) const;
-	const std::string&	getMatrixOrder					(void) const;
-	const std::string&	getMemberType					(void) const;
-	const std::string&	getMemberName					(void) const;
-	const std::string&	getMemberFixedArrayName			(void) const;
-	const std::string&	getMemberVariableArray			(void) const;
 	bool				getMemberReorder				(void) const;
-	int					getNumberMembers				(void) const;
 
 	void				resetValues						(void);
 
@@ -177,56 +168,11 @@
 	return true;
 }
 
-const std::string& SsboArgs::getContextVersion (void) const
-{
-	return m_negativeContextVersion;
-}
-
-const std::string& SsboArgs::getStdFormat (void) const
-{
-	return m_stdFormat;
-}
-
-const std::string& SsboArgs::getBindingPoint (void) const
-{
-	return m_bindingPoint;
-}
-
-const std::string& SsboArgs::getMatrixOrder (void) const
-{
-	return m_matrixOrder;
-}
-
-const std::string& SsboArgs::getMemberType (void) const
-{
-	return m_memberType;
-}
-
-const std::string& SsboArgs::getMemberName (void) const
-{
-	return m_memberName;
-}
-
-const std::string& SsboArgs::getMemberFixedArrayName (void) const
-{
-	return m_memberFixedArrayerName;
-}
-
-const std::string& SsboArgs::getMemberVariableArray (void) const
-{
-	return m_memberVariableArray;
-}
-
 bool SsboArgs::getMemberReorder (void) const
 {
 	return m_memberReorder;
 }
 
-int SsboArgs::getNumberMembers (void) const
-{
-	return m_numberMembers;
-}
-
 void SsboArgs::resetValues (void)
 {
 	setDefaultValues();
diff --git a/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp b/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
index b47e951..cfa8574 100644
--- a/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
+++ b/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
@@ -436,7 +436,6 @@
 	bool		isStagePresent		(glu::ShaderType stage) const;
 	bool		isStageReferencing	(glu::ShaderType stage) const;
 
-	deUint32	getPresentMask		(void) const;
 	deUint32	getReferencingMask	(void) const;
 
 	const glu::GLSLVersion	m_version;
@@ -494,17 +493,6 @@
 	return m_stageReferencing[stage];
 }
 
-deUint32 ShaderSet::getPresentMask (void) const
-{
-	deUint32 mask = 0;
-	for (deUint32 stage = 0; stage < glu::SHADERTYPE_LAST; ++stage)
-	{
-		if (m_stagePresent[stage])
-			mask |= (1u << stage);
-	}
-	return mask;
-}
-
 deUint32 ShaderSet::getReferencingMask (void) const
 {
 	deUint32 mask = 0;
diff --git a/modules/gles31/functional/es31fProgramUniformTests.cpp b/modules/gles31/functional/es31fProgramUniformTests.cpp
index 91a1257..19fd1c0 100644
--- a/modules/gles31/functional/es31fProgramUniformTests.cpp
+++ b/modules/gles31/functional/es31fProgramUniformTests.cpp
@@ -829,7 +829,6 @@
 		FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX	= 1<<8
 	};
 
-								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
 								UniformCase		(Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
 	virtual						~UniformCase	(void);
 
@@ -945,15 +944,6 @@
 {
 }
 
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
-	: TestCase				(context, name, description)
-	, CallLogWrapper		(context.getRenderContext().getFunctions(), m_testCtx.getLog())
-	, m_features			(0)
-	, m_uniformCollection	(uniformCollection)
-	, m_caseShaderType		(caseShaderType)
-{
-}
-
 void UniformCase::init (void)
 {
 	{
diff --git a/modules/gles31/functional/es31fSRGBDecodeTests.cpp b/modules/gles31/functional/es31fSRGBDecodeTests.cpp
index d3f947f..114a624 100644
--- a/modules/gles31/functional/es31fSRGBDecodeTests.cpp
+++ b/modules/gles31/functional/es31fSRGBDecodeTests.cpp
@@ -311,11 +311,9 @@
 	void		setTextureUnit		(const deUint32 textureUnit);
 	void		setIsActive			(const bool isActive);
 
-	deUint32	getHandle			(void) const;
 	bool		getIsActive			(void) const;
 
 	void		bindToTexture		(void);
-	void		unbindFromTexture	(void);
 
 private:
 	const glw::Functions*		m_gl;
@@ -387,11 +385,6 @@
 	m_isActive = isActive;
 }
 
-deUint32 SRGBTestSampler::getHandle (void) const
-{
-	return m_samplerHandle;
-}
-
 bool SRGBTestSampler::getIsActive (void) const
 {
 	return m_isActive;
@@ -402,11 +395,6 @@
 	m_gl->bindSampler(m_textureUnit, m_samplerHandle);
 }
 
-void SRGBTestSampler::unbindFromTexture (void)
-{
-	m_gl->bindSampler(m_textureUnit, 0);
-}
-
 class SRGBTestTexture
 {
 public:
@@ -430,7 +418,6 @@
 	deUint32	getHandle			(void) const;
 	deUint32	getGLTargetType		(void) const;
 	SRGBDecode	getDecode			(void) const;
-	bool		getHasSampler		(void) const;
 
 	void		upload				(void);
 
@@ -565,11 +552,6 @@
 	return m_decoding;
 }
 
-bool SRGBTestTexture::getHasSampler (void) const
-{
-	return m_hasSampler;
-}
-
 void SRGBTestTexture::upload (void)
 {
 	m_source.upload();
@@ -604,14 +586,11 @@
 	void							setToggleRequired		(bool toggleRequired);
 	void							setUniformToggle		(int location, bool toggleDecodeValue);
 
-	int								getUniformTotal			(void) const;
 	const std::vector<UniformData>&	getUniformDataList		(void) const;
 	const UniformData&				getUniformAtLocation	(int location) const;
 	int								getUniformLocation		(const std::string& name);
 	deUint32						getHandle				(void) const;
 	bool							getBlendRequired		(void) const;
-	bool							getToggleRequired		(void) const;
-	const std::string&				getFragmentShader		(void) const;
 
 private:
 	std::string						genFunctionCall			(ShaderSamplingType samplingType, const int uniformIdx);
@@ -713,11 +692,6 @@
 	}
 }
 
-int SRGBTestProgram::getUniformTotal (void) const
-{
-	return (int)m_uniformDataList.size();
-}
-
 const std::vector<UniformData>& SRGBTestProgram::getUniformDataList (void) const
 {
 	return m_uniformDataList;
@@ -752,16 +726,6 @@
 	return m_blendRequired;
 }
 
-bool SRGBTestProgram::getToggleRequired (void) const
-{
-	return m_toggleRequired;
-}
-
-const std::string& SRGBTestProgram::getFragmentShader (void) const
-{
-	return m_shaderFragment;
-}
-
 std::string SRGBTestProgram::genFunctionCall (ShaderSamplingType samplingType, const int uniformIdx)
 {
 	std::ostringstream functionCall;
@@ -904,13 +868,8 @@
 
 	void					setSamplingGroup				(const ShaderSamplingGroup samplingGroup);
 	void					setSamplingLocations			(const int px, const int py);
-	void					setShaderProgramBlendRequired	(const int programIdx, const bool blend);
-	void					setShaderProgramToggleRequired	(const int programIdx, const bool toggle);
 	void					setUniformToggle				(const int programIdx, const std::string& uniformName, bool toggleDecode);
 
-	deUint32				getShaderProgramHandle			(const int programIdx) const;
-	deUint32				getTextureHandle				(const int textureIdx) const;
-
 	void					addTexture						(const glu::TextureTestUtil::TextureType	targetType,
 															 const int									width,
 															 const int									height,
@@ -1104,32 +1063,6 @@
 	m_py = py;
 }
 
-void SRGBTestCase::setShaderProgramBlendRequired (const int programIdx, const bool blend)
-{
-	m_shaderProgramList[programIdx]->setBlendRequired(blend);
-}
-
-void SRGBTestCase::setShaderProgramToggleRequired (const int programIdx, const bool toggle)
-{
-	m_shaderProgramList[programIdx]->setToggleRequired(toggle);
-}
-
-void SRGBTestCase::setUniformToggle (const int programIdx, const std::string& uniformName, bool toggleDecodeValue)
-{
-	int uniformLocation = m_shaderProgramList[programIdx]->getUniformLocation(uniformName);
-	m_shaderProgramList[programIdx]->setUniformToggle(uniformLocation, toggleDecodeValue);
-}
-
-deUint32 SRGBTestCase::getShaderProgramHandle (const int programIdx) const
-{
-	return m_shaderProgramList[programIdx]->getHandle();
-}
-
-deUint32 SRGBTestCase::getTextureHandle (const int textureIdx) const
-{
-	return m_textureSourceList[textureIdx]->getHandle();
-}
-
 void SRGBTestCase::addTexture (	const glu::TextureTestUtil::TextureType	targetType,
 								const int								width,
 								const int								height,
diff --git a/modules/glshared/glsBuiltinPrecisionTests.cpp b/modules/glshared/glsBuiltinPrecisionTests.cpp
index 76d83c8..da69f89 100644
--- a/modules/glshared/glsBuiltinPrecisionTests.cpp
+++ b/modules/glshared/glsBuiltinPrecisionTests.cpp
@@ -1085,10 +1085,10 @@
 template <typename T0 = Void, typename T1 = Void, typename T2 = Void, typename T3 = Void>
 struct Tuple4
 {
-	explicit Tuple4 (const T0& e0 = T0(),
-					 const T1& e1 = T1(),
-					 const T2& e2 = T2(),
-					 const T3& e3 = T3())
+	explicit Tuple4 (const T0 e0 = T0(),
+					 const T1 e1 = T1(),
+					 const T2 e2 = T2(),
+					 const T3 e3 = T3())
 		: a	(e0)
 		, b	(e1)
 		, c	(e2)
diff --git a/modules/glshared/glsDrawTest.cpp b/modules/glshared/glsDrawTest.cpp
index c721e14..155bd35 100644
--- a/modules/glshared/glsDrawTest.cpp
+++ b/modules/glshared/glsDrawTest.cpp
@@ -885,7 +885,7 @@
 	return GLValue::Half::create(std::fabs(val.to<float>()));
 }
 
-// AttriuteArray
+// AttributeArray
 
 class AttributeArray
 {
@@ -894,7 +894,6 @@
 								~AttributeArray		(void);
 
 	void						data				(DrawTestSpec::Target target, size_t size, const char* data, DrawTestSpec::Usage usage);
-	void						subdata				(DrawTestSpec::Target target, int offset, int size, const char* data);
 	void						setupArray			(bool bound, int offset, int size, DrawTestSpec::InputType inType, DrawTestSpec::OutputType outType, bool normalized, int stride, int instanceDivisor, const rr::GenericVec4& defaultAttrib, bool isPositionAttr, bool bgraComponentOrder);
 	void						bindAttribute		(deUint32 loc);
 	void						bindIndexArray		(DrawTestSpec::Target storage);
@@ -993,24 +992,6 @@
 		DE_ASSERT(false);
 }
 
-void AttributeArray::subdata (DrawTestSpec::Target target, int offset, int size, const char* ptr)
-{
-	m_target = target;
-
-	if (m_storage == DrawTestSpec::STORAGE_BUFFER)
-	{
-		m_ctx.bindBuffer(targetToGL(target), m_glBuffer);
-		GLU_EXPECT_NO_ERROR(m_ctx.getError(), "glBindBuffer()");
-
-		m_ctx.bufferSubData(targetToGL(target), offset, size, ptr);
-		GLU_EXPECT_NO_ERROR(m_ctx.getError(), "glBufferSubData()");
-	}
-	else if (m_storage == DrawTestSpec::STORAGE_USER)
-		std::memcpy(m_data + offset, ptr, size);
-	else
-		DE_ASSERT(false);
-}
-
 void AttributeArray::setupArray (bool bound, int offset, int size, DrawTestSpec::InputType inputType, DrawTestSpec::OutputType outType, bool normalized, int stride, int instanceDivisor, const rr::GenericVec4& defaultAttrib, bool isPositionAttr, bool bgraComponentOrder)
 {
 	m_componentCount	= size;
@@ -1536,7 +1517,6 @@
 private:
 	template<typename T>
 	static char*			createIndices			(int seed, int elementCount, int offset, int min, int max, int indexBase);
-	static void				setData					(char* data, DrawTestSpec::InputType type, deRandom& rnd, GLValue min, GLValue max);
 
 	static char*			generateBasicArray		(int seed, int elementCount, int componentCount, int offset, int stride, DrawTestSpec::InputType type);
 	template<typename T, typename GLType>
@@ -1544,70 +1524,6 @@
 	static char*			generatePackedArray		(int seed, int elementCount, int componentCount, int offset, int stride);
 };
 
-void RandomArrayGenerator::setData (char* data, DrawTestSpec::InputType type, deRandom& rnd, GLValue min, GLValue max)
-{
-	switch (type)
-	{
-		case DrawTestSpec::INPUTTYPE_FLOAT:
-		{
-			alignmentSafeAssignment<float>(data, getRandom<GLValue::Float>(rnd, min.fl, max.fl));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_SHORT:
-		{
-			alignmentSafeAssignment<deInt16>(data, getRandom<GLValue::Short>(rnd, min.s, max.s));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_UNSIGNED_SHORT:
-		{
-			alignmentSafeAssignment<deUint16>(data, getRandom<GLValue::Ushort>(rnd, min.us, max.us));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_BYTE:
-		{
-			alignmentSafeAssignment<deInt8>(data, getRandom<GLValue::Byte>(rnd, min.b, max.b));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_UNSIGNED_BYTE:
-		{
-			alignmentSafeAssignment<deUint8>(data, getRandom<GLValue::Ubyte>(rnd, min.ub, max.ub));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_FIXED:
-		{
-			alignmentSafeAssignment<deInt32>(data, getRandom<GLValue::Fixed>(rnd, min.fi, max.fi));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_INT:
-		{
-			alignmentSafeAssignment<deInt32>(data, getRandom<GLValue::Int>(rnd, min.i, max.i));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_UNSIGNED_INT:
-		{
-			alignmentSafeAssignment<deUint32>(data, getRandom<GLValue::Uint>(rnd, min.ui, max.ui));
-			break;
-		}
-
-		case DrawTestSpec::INPUTTYPE_HALF:
-		{
-			alignmentSafeAssignment<deFloat16>(data, getRandom<GLValue::Half>(rnd, min.h, max.h).getValue());
-			break;
-		}
-
-		default:
-			DE_ASSERT(false);
-			break;
-	}
-}
-
 char* RandomArrayGenerator::generateArray (int seed, int elementCount, int componentCount, int offset, int stride, DrawTestSpec::InputType type)
 {
 	if (type == DrawTestSpec::INPUTTYPE_INT_2_10_10_10 || type == DrawTestSpec::INPUTTYPE_UNSIGNED_INT_2_10_10_10)
diff --git a/scripts/egl/gtf_wrapper.py b/scripts/egl/gtf_wrapper.py
index 182c878..379762b 100644
--- a/scripts/egl/gtf_wrapper.py
+++ b/scripts/egl/gtf_wrapper.py
@@ -96,5 +96,5 @@
 	writeInlFile(os.path.join(EGL_WRAPPER_DIR, "eglwApi.inl"), src)
 	writeInlFile(os.path.join(EGL_WRAPPER_DIR, "eglwEnumsC.inl"), indentLines(map(enumDefinitionC, defaultIface.enums)))
 	genCommandList(noExtIface, commandWrapperDefinition, EGL_WRAPPER_DIR, "eglwImpl.inl")
-	genCommandList(extOnlyIface, commandWrapperDefinition, EGL_WRAPPER_DIR, "eglwImplExt.inl", True)
+	genCommandList(extOnlyIface, commandWrapperDefinition, EGL_WRAPPER_DIR, "eglwImplExt.inl")