diff --git a/Source/ThirdParty/ANGLE/ChangeLog b/Source/ThirdParty/ANGLE/ChangeLog
index 10fd032..bcc4ddf 100644
--- a/Source/ThirdParty/ANGLE/ChangeLog
+++ b/Source/ThirdParty/ANGLE/ChangeLog
@@ -1,3 +1,76 @@
+2019-12-05  James Darpinian  <jdarpinian@chromium.org>
+
+        Finish ANGLE update
+        https://bugs.webkit.org/show_bug.cgi?id=204911
+
+        The last ANGLE update patch didn't include all the changed files.
+        This patch updates the rest of the files.
+
+        Reviewed by Alex Christensen.
+
+        * src/tests: Lots of changed files from upstream ANGLE.
+        * src/third_party/compiler/README.chromium:
+        * third_party/VK-GL-CTS/README.angle: Added.
+        * third_party/deqp/README.angle: Removed.
+        * third_party/googletest/README.angle: Removed.
+        * third_party/libpng/BUILD.gn:
+        * third_party/spirv-cross/README.angle: Added.
+        * util/OSWindow.h:
+        * util/egl_loader_autogen.cpp:
+        (angle::LoadEGL):
+        * util/egl_loader_autogen.h:
+        * util/fuchsia/ScenicWindow.cpp:
+        (ScenicWindow::resetNativeWindow):
+        * util/fuchsia/ScenicWindow.h:
+        * util/gles_loader_autogen.cpp:
+        (angle::LoadGLES):
+        * util/gles_loader_autogen.h:
+        * util/osx/OSXWindow.h:
+        * util/osx/OSXWindow.mm:
+        (OSXWindow::initialize):
+        * util/ozone/OzoneWindow.h:
+        * util/posix/crash_handler_posix.cpp:
+        (angle::InitCrashHandler):
+        * util/posix/test_utils_posix.cpp:
+        (angle::GetTempDir):
+        (angle::CreateTemporaryFileInDir):
+        (angle::DeleteFile):
+        (angle::LaunchProcess):
+        (angle::NumberOfProcessors):
+        * util/shader_utils.cpp:
+        (CompileShaderFromFile):
+        (CompileProgramFromFiles):
+        * util/test_utils.cpp: Added.
+        (angle::CreateTemporaryFile):
+        (angle::GetFileSize):
+        (angle::ReadEntireFileToString):
+        (angle::ProcessHandle::ProcessHandle):
+        (angle::ProcessHandle::~ProcessHandle):
+        (angle::ProcessHandle::operator=):
+        (angle::ProcessHandle::reset):
+        * util/test_utils.h:
+        * util/test_utils_unittest.cpp: Added.
+        (angle::NormalizeNewLines):
+        (angle::TEST):
+        * util/test_utils_unittest_helper.cpp: Added.
+        (main):
+        * util/test_utils_unittest_helper.h: Added.
+        * util/util.gni:
+        * util/windows/WGLWindow.cpp:
+        * util/windows/test_utils_win.cpp:
+        (angle::InitCrashHandler):
+        (angle::TerminateCrashHandler):
+        (angle::LaunchProcess):
+        (angle::GetTempDir):
+        (angle::CreateTemporaryFileInDir):
+        (angle::DeleteFile):
+        (angle::NumberOfProcessors):
+        * util/windows/win32/Win32Window.cpp:
+        (Win32Window::initialize):
+        * util/windows/win32/test_utils_win32.cpp:
+        (angle::StabilizeCPUForBenchmarking):
+        * util/x11/X11Window.h:
+
 2019-12-02  Ross Kirsling  <ross.kirsling@sony.com>
 
         Unreviewed WinCairo build fix following r252989.
diff --git a/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni b/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
index 9b7bed6..f788a3e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
@@ -43,6 +43,7 @@
   "gl_tests/FramebufferRenderMipmapTest.cpp",
   "gl_tests/FramebufferTest.cpp",
   "gl_tests/GeometryShaderTest.cpp",
+  "gl_tests/GetImageTest.cpp",
   "gl_tests/gles1/AlphaFuncTest.cpp",
   "gl_tests/gles1/BasicDrawTest.cpp",
   "gl_tests/gles1/ClientActiveTextureTest.cpp",
@@ -81,6 +82,7 @@
   "gl_tests/MipmapTest.cpp",
   "gl_tests/MultiDrawTest.cpp",
   "gl_tests/MultisampleCompatibilityTest.cpp",
+  "gl_tests/MultisampledRenderToTextureTest.cpp",
   "gl_tests/MultisampleTest.cpp",
   "gl_tests/MultithreadingTest.cpp",
   "gl_tests/MultiviewDrawTest.cpp",
@@ -139,6 +141,7 @@
   "egl_tests/EGLCreateContextAttribsTest.cpp",
   "egl_tests/EGLDebugTest.cpp",
   "egl_tests/EGLNoConfigContextTest.cpp",
+  "egl_tests/EGLPrintEGLinfoTest.cpp",
   "egl_tests/EGLProgramCacheControlTest.cpp",
   "egl_tests/EGLQueryContextTest.cpp",
   "egl_tests/EGLRecordableTest.cpp",
@@ -161,6 +164,8 @@
 angle_end2end_tests_mac_sources = [
   "egl_tests/EGLDeviceCGLTest.cpp",
   "egl_tests/EGLIOSurfaceClientBufferTest.cpp",
+  "test_utils/angle_test_instantiate_apple.mm",
+  "test_utils/angle_test_instantiate_apple.h",
 ]
 angle_end2end_tests_win_sources = [
   "gl_tests/D3DImageFormatConversionTest.cpp",
diff --git a/Source/ThirdParty/ANGLE/src/tests/angle_perftests.gni b/Source/ThirdParty/ANGLE/src/tests/angle_perftests.gni
index 5b16a3b..e8f4356 100644
--- a/Source/ThirdParty/ANGLE/src/tests/angle_perftests.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/angle_perftests.gni
@@ -19,6 +19,13 @@
   "test_utils/gl_raii.h",
 ]
 
+if (is_mac) {
+  _angle_perf_test_common_sources += [
+    "test_utils/angle_test_instantiate_apple.mm",
+    "test_utils/angle_test_instantiate_apple.h",
+  ]
+}
+
 angle_perf_tests_sources = _angle_perf_test_common_sources + [
                              "perf_tests/BlitFramebufferPerf.cpp",
                              "perf_tests/BindingPerf.cpp",
diff --git a/Source/ThirdParty/ANGLE/src/tests/angle_unittests.gni b/Source/ThirdParty/ANGLE/src/tests/angle_unittests.gni
index b1686cc..d6a86a3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/angle_unittests.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/angle_unittests.gni
@@ -15,7 +15,6 @@
   "../common/matrix_utils_unittest.cpp",
   "../common/string_utils_unittest.cpp",
   "../common/system_utils_unittest.cpp",
-  "../common/system_utils_unittest_helper.h",
   "../common/utilities_unittest.cpp",
   "../common/vector_utils_unittest.cpp",
   "../feature_support_util/feature_support_util_unittest.cpp",
@@ -130,6 +129,8 @@
   "../tests/test_utils/ShaderCompileTreeTest.h",
   "../tests/test_utils/ShaderCompileTreeTest.cpp",
   "../tests/test_utils/ShaderExtensionTest.h",
+  "../../util/test_utils_unittest.cpp",
+  "../../util/test_utils_unittest_helper.h",
 ]
 
 # TODO(jmadill): should probably call this windows sources
@@ -138,9 +139,9 @@
   "../tests/compiler_tests/UnrollFlatten_test.cpp",
 ]
 
-angle_unittests_helper_sources = [
-  "../common/system_utils_unittest_helper.cpp",
-  "../common/system_utils_unittest_helper.h",
+test_utils_unittest_helper_sources = [
+  "../../util/test_utils_unittest_helper.cpp",
+  "../../util/test_utils_unittest_helper.h",
 ]
 
 if (is_android) {
diff --git a/Source/ThirdParty/ANGLE/src/tests/angle_white_box_tests.gni b/Source/ThirdParty/ANGLE/src/tests/angle_white_box_tests.gni
index cc736f3..0c8221b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/angle_white_box_tests.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/angle_white_box_tests.gni
@@ -25,3 +25,7 @@
   "gl_tests/VulkanFormatTablesTest.cpp",
   "gl_tests/VulkanUniformUpdatesTest.cpp",
 ]
+angle_white_box_tests_mac_sources = [
+  "test_utils/angle_test_instantiate_apple.mm",
+  "test_utils/angle_test_instantiate_apple.h",
+]
diff --git a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp
index acff961..0766cce 100644
--- a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp
@@ -16,33 +16,33 @@
 
 TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
 {
-    ASSERT_EQ(0x0000026cu, ImmutableString("radians(00B").mangledNameHash());
+    ASSERT_EQ(0x0000026du, ImmutableString("radians(00B").mangledNameHash());
     ASSERT_EQ(0x00000146u, ImmutableString("radians(10B").mangledNameHash());
     ASSERT_EQ(0x00000108u, ImmutableString("radians(20B").mangledNameHash());
-    ASSERT_EQ(0x0000039bu, ImmutableString("radians(30B").mangledNameHash());
+    ASSERT_EQ(0x0000039cu, ImmutableString("radians(30B").mangledNameHash());
     ASSERT_EQ(0x000001d8u, ImmutableString("degrees(00B").mangledNameHash());
-    ASSERT_EQ(0x0000031cu, ImmutableString("degrees(10B").mangledNameHash());
+    ASSERT_EQ(0x0000031du, ImmutableString("degrees(10B").mangledNameHash());
     ASSERT_EQ(0x00000046u, ImmutableString("degrees(20B").mangledNameHash());
     ASSERT_EQ(0x00000168u, ImmutableString("degrees(30B").mangledNameHash());
-    ASSERT_EQ(0x00000347u, ImmutableString("sin(00B").mangledNameHash());
-    ASSERT_EQ(0x00000203u, ImmutableString("sin(10B").mangledNameHash());
-    ASSERT_EQ(0x00000224u, ImmutableString("sin(20B").mangledNameHash());
+    ASSERT_EQ(0x00000348u, ImmutableString("sin(00B").mangledNameHash());
+    ASSERT_EQ(0x00000204u, ImmutableString("sin(10B").mangledNameHash());
+    ASSERT_EQ(0x00000225u, ImmutableString("sin(20B").mangledNameHash());
     ASSERT_EQ(0x0000010fu, ImmutableString("sin(30B").mangledNameHash());
-    ASSERT_EQ(0x0000020fu, ImmutableString("cos(00B").mangledNameHash());
-    ASSERT_EQ(0x00000356u, ImmutableString("cos(10B").mangledNameHash());
-    ASSERT_EQ(0x00000399u, ImmutableString("cos(20B").mangledNameHash());
-    ASSERT_EQ(0x000002b3u, ImmutableString("cos(30B").mangledNameHash());
-    ASSERT_EQ(0x00000206u, ImmutableString("tan(00B").mangledNameHash());
-    ASSERT_EQ(0x0000034du, ImmutableString("tan(10B").mangledNameHash());
-    ASSERT_EQ(0x0000039du, ImmutableString("tan(20B").mangledNameHash());
+    ASSERT_EQ(0x00000210u, ImmutableString("cos(00B").mangledNameHash());
+    ASSERT_EQ(0x00000357u, ImmutableString("cos(10B").mangledNameHash());
+    ASSERT_EQ(0x0000039au, ImmutableString("cos(20B").mangledNameHash());
+    ASSERT_EQ(0x000002b4u, ImmutableString("cos(30B").mangledNameHash());
+    ASSERT_EQ(0x00000207u, ImmutableString("tan(00B").mangledNameHash());
+    ASSERT_EQ(0x0000034eu, ImmutableString("tan(10B").mangledNameHash());
+    ASSERT_EQ(0x0000039eu, ImmutableString("tan(20B").mangledNameHash());
     ASSERT_EQ(0x000000f4u, ImmutableString("tan(30B").mangledNameHash());
-    ASSERT_EQ(0x00000231u, ImmutableString("asin(00B").mangledNameHash());
-    ASSERT_EQ(0x00000378u, ImmutableString("asin(10B").mangledNameHash());
+    ASSERT_EQ(0x00000232u, ImmutableString("asin(00B").mangledNameHash());
+    ASSERT_EQ(0x00000379u, ImmutableString("asin(10B").mangledNameHash());
     ASSERT_EQ(0x00000018u, ImmutableString("asin(20B").mangledNameHash());
     ASSERT_EQ(0x00000136u, ImmutableString("asin(30B").mangledNameHash());
     ASSERT_EQ(0x00000060u, ImmutableString("acos(00B").mangledNameHash());
-    ASSERT_EQ(0x000002e6u, ImmutableString("acos(10B").mangledNameHash());
-    ASSERT_EQ(0x00000288u, ImmutableString("acos(20B").mangledNameHash());
+    ASSERT_EQ(0x000002e7u, ImmutableString("acos(10B").mangledNameHash());
+    ASSERT_EQ(0x00000289u, ImmutableString("acos(20B").mangledNameHash());
     ASSERT_EQ(0x00000166u, ImmutableString("acos(30B").mangledNameHash());
     ASSERT_EQ(0x000001f2u, ImmutableString("atan(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000031u, ImmutableString("atan(10B10B").mangledNameHash());
@@ -51,261 +51,261 @@
     ASSERT_EQ(0x000001dfu, ImmutableString("atan(00B").mangledNameHash());
     ASSERT_EQ(0x00000070u, ImmutableString("atan(10B").mangledNameHash());
     ASSERT_EQ(0x00000086u, ImmutableString("atan(20B").mangledNameHash());
-    ASSERT_EQ(0x00000323u, ImmutableString("atan(30B").mangledNameHash());
-    ASSERT_EQ(0x0000028au, ImmutableString("sinh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000322u, ImmutableString("sinh(10B").mangledNameHash());
+    ASSERT_EQ(0x00000324u, ImmutableString("atan(30B").mangledNameHash());
+    ASSERT_EQ(0x0000028bu, ImmutableString("sinh(00B").mangledNameHash());
+    ASSERT_EQ(0x00000323u, ImmutableString("sinh(10B").mangledNameHash());
     ASSERT_EQ(0x0000017eu, ImmutableString("sinh(20B").mangledNameHash());
     ASSERT_EQ(0x000000ecu, ImmutableString("sinh(30B").mangledNameHash());
     ASSERT_EQ(0x00000158u, ImmutableString("cosh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000306u, ImmutableString("cosh(10B").mangledNameHash());
-    ASSERT_EQ(0x00000335u, ImmutableString("cosh(20B").mangledNameHash());
-    ASSERT_EQ(0x00000267u, ImmutableString("cosh(30B").mangledNameHash());
+    ASSERT_EQ(0x00000307u, ImmutableString("cosh(10B").mangledNameHash());
+    ASSERT_EQ(0x00000336u, ImmutableString("cosh(20B").mangledNameHash());
+    ASSERT_EQ(0x00000268u, ImmutableString("cosh(30B").mangledNameHash());
     ASSERT_EQ(0x00000047u, ImmutableString("tanh(00B").mangledNameHash());
     ASSERT_EQ(0x00000167u, ImmutableString("tanh(10B").mangledNameHash());
-    ASSERT_EQ(0x0000027cu, ImmutableString("tanh(20B").mangledNameHash());
+    ASSERT_EQ(0x0000027du, ImmutableString("tanh(20B").mangledNameHash());
     ASSERT_EQ(0x0000000du, ImmutableString("tanh(30B").mangledNameHash());
-    ASSERT_EQ(0x00000261u, ImmutableString("asinh(00B").mangledNameHash());
-    ASSERT_EQ(0x000003a1u, ImmutableString("asinh(10B").mangledNameHash());
+    ASSERT_EQ(0x00000262u, ImmutableString("asinh(00B").mangledNameHash());
+    ASSERT_EQ(0x000003a2u, ImmutableString("asinh(10B").mangledNameHash());
     ASSERT_EQ(0x000000f1u, ImmutableString("asinh(20B").mangledNameHash());
-    ASSERT_EQ(0x0000020au, ImmutableString("asinh(30B").mangledNameHash());
+    ASSERT_EQ(0x0000020bu, ImmutableString("asinh(30B").mangledNameHash());
     ASSERT_EQ(0x0000017bu, ImmutableString("acosh(00B").mangledNameHash());
     ASSERT_EQ(0x000000abu, ImmutableString("acosh(10B").mangledNameHash());
     ASSERT_EQ(0x0000001du, ImmutableString("acosh(20B").mangledNameHash());
-    ASSERT_EQ(0x000002a3u, ImmutableString("acosh(30B").mangledNameHash());
+    ASSERT_EQ(0x000002a4u, ImmutableString("acosh(30B").mangledNameHash());
     ASSERT_EQ(0x00000082u, ImmutableString("atanh(00B").mangledNameHash());
     ASSERT_EQ(0x0000001eu, ImmutableString("atanh(10B").mangledNameHash());
-    ASSERT_EQ(0x000002cbu, ImmutableString("atanh(20B").mangledNameHash());
+    ASSERT_EQ(0x000002ccu, ImmutableString("atanh(20B").mangledNameHash());
     ASSERT_EQ(0x00000193u, ImmutableString("atanh(30B").mangledNameHash());
     ASSERT_EQ(0x0000018du, ImmutableString("pow(00B00B").mangledNameHash());
     ASSERT_EQ(0x0000008du, ImmutableString("pow(10B10B").mangledNameHash());
-    ASSERT_EQ(0x000002feu, ImmutableString("pow(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000217u, ImmutableString("pow(30B30B").mangledNameHash());
-    ASSERT_EQ(0x0000030bu, ImmutableString("exp(00B").mangledNameHash());
+    ASSERT_EQ(0x000002ffu, ImmutableString("pow(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000218u, ImmutableString("pow(30B30B").mangledNameHash());
+    ASSERT_EQ(0x0000030cu, ImmutableString("exp(00B").mangledNameHash());
     ASSERT_EQ(0x00000077u, ImmutableString("exp(10B").mangledNameHash());
     ASSERT_EQ(0x00000178u, ImmutableString("exp(20B").mangledNameHash());
-    ASSERT_EQ(0x00000295u, ImmutableString("exp(30B").mangledNameHash());
-    ASSERT_EQ(0x0000029cu, ImmutableString("log(00B").mangledNameHash());
+    ASSERT_EQ(0x00000296u, ImmutableString("exp(30B").mangledNameHash());
+    ASSERT_EQ(0x0000029du, ImmutableString("log(00B").mangledNameHash());
     ASSERT_EQ(0x0000017cu, ImmutableString("log(10B").mangledNameHash());
     ASSERT_EQ(0x00000135u, ImmutableString("log(20B").mangledNameHash());
     ASSERT_EQ(0x000000ccu, ImmutableString("log(30B").mangledNameHash());
-    ASSERT_EQ(0x0000039au, ImmutableString("exp2(00B").mangledNameHash());
+    ASSERT_EQ(0x0000039bu, ImmutableString("exp2(00B").mangledNameHash());
     ASSERT_EQ(0x000000f9u, ImmutableString("exp2(10B").mangledNameHash());
     ASSERT_EQ(0x00000144u, ImmutableString("exp2(20B").mangledNameHash());
-    ASSERT_EQ(0x00000258u, ImmutableString("exp2(30B").mangledNameHash());
+    ASSERT_EQ(0x00000259u, ImmutableString("exp2(30B").mangledNameHash());
     ASSERT_EQ(0x00000162u, ImmutableString("log2(00B").mangledNameHash());
     ASSERT_EQ(0x0000008au, ImmutableString("log2(10B").mangledNameHash());
-    ASSERT_EQ(0x00000317u, ImmutableString("log2(20B").mangledNameHash());
+    ASSERT_EQ(0x00000318u, ImmutableString("log2(20B").mangledNameHash());
     ASSERT_EQ(0x000001b3u, ImmutableString("log2(30B").mangledNameHash());
     ASSERT_EQ(0x000001d4u, ImmutableString("sqrt(00B").mangledNameHash());
     ASSERT_EQ(0x000000b8u, ImmutableString("sqrt(10B").mangledNameHash());
     ASSERT_EQ(0x0000007eu, ImmutableString("sqrt(20B").mangledNameHash());
-    ASSERT_EQ(0x00000307u, ImmutableString("sqrt(30B").mangledNameHash());
+    ASSERT_EQ(0x00000308u, ImmutableString("sqrt(30B").mangledNameHash());
     ASSERT_EQ(0x0000004cu, ImmutableString("inversesqrt(00B").mangledNameHash());
-    ASSERT_EQ(0x000002e4u, ImmutableString("inversesqrt(10B").mangledNameHash());
-    ASSERT_EQ(0x0000023eu, ImmutableString("inversesqrt(20B").mangledNameHash());
+    ASSERT_EQ(0x000002e5u, ImmutableString("inversesqrt(10B").mangledNameHash());
+    ASSERT_EQ(0x0000023fu, ImmutableString("inversesqrt(20B").mangledNameHash());
     ASSERT_EQ(0x0000016eu, ImmutableString("inversesqrt(30B").mangledNameHash());
-    ASSERT_EQ(0x00000280u, ImmutableString("abs(00B").mangledNameHash());
+    ASSERT_EQ(0x00000281u, ImmutableString("abs(00B").mangledNameHash());
     ASSERT_EQ(0x00000165u, ImmutableString("abs(10B").mangledNameHash());
     ASSERT_EQ(0x0000004bu, ImmutableString("abs(20B").mangledNameHash());
-    ASSERT_EQ(0x000002eau, ImmutableString("abs(30B").mangledNameHash());
-    ASSERT_EQ(0x0000027fu, ImmutableString("abs(00D").mangledNameHash());
+    ASSERT_EQ(0x000002ebu, ImmutableString("abs(30B").mangledNameHash());
+    ASSERT_EQ(0x00000280u, ImmutableString("abs(00D").mangledNameHash());
     ASSERT_EQ(0x00000164u, ImmutableString("abs(10D").mangledNameHash());
     ASSERT_EQ(0x0000004au, ImmutableString("abs(20D").mangledNameHash());
-    ASSERT_EQ(0x000002e7u, ImmutableString("abs(30D").mangledNameHash());
-    ASSERT_EQ(0x0000029bu, ImmutableString("sign(00B").mangledNameHash());
-    ASSERT_EQ(0x0000038cu, ImmutableString("sign(10B").mangledNameHash());
+    ASSERT_EQ(0x000002e8u, ImmutableString("abs(30D").mangledNameHash());
+    ASSERT_EQ(0x0000029cu, ImmutableString("sign(00B").mangledNameHash());
+    ASSERT_EQ(0x0000038du, ImmutableString("sign(10B").mangledNameHash());
     ASSERT_EQ(0x0000007fu, ImmutableString("sign(20B").mangledNameHash());
     ASSERT_EQ(0x0000018bu, ImmutableString("sign(30B").mangledNameHash());
-    ASSERT_EQ(0x0000029eu, ImmutableString("sign(00D").mangledNameHash());
-    ASSERT_EQ(0x00000309u, ImmutableString("sign(10D").mangledNameHash());
+    ASSERT_EQ(0x0000029fu, ImmutableString("sign(00D").mangledNameHash());
+    ASSERT_EQ(0x0000030au, ImmutableString("sign(10D").mangledNameHash());
     ASSERT_EQ(0x00000081u, ImmutableString("sign(20D").mangledNameHash());
     ASSERT_EQ(0x0000018cu, ImmutableString("sign(30D").mangledNameHash());
-    ASSERT_EQ(0x000003a3u, ImmutableString("floor(00B").mangledNameHash());
-    ASSERT_EQ(0x00000202u, ImmutableString("floor(10B").mangledNameHash());
-    ASSERT_EQ(0x0000021eu, ImmutableString("floor(20B").mangledNameHash());
+    ASSERT_EQ(0x000003a4u, ImmutableString("floor(00B").mangledNameHash());
+    ASSERT_EQ(0x00000203u, ImmutableString("floor(10B").mangledNameHash());
+    ASSERT_EQ(0x0000021fu, ImmutableString("floor(20B").mangledNameHash());
     ASSERT_EQ(0x00000110u, ImmutableString("floor(30B").mangledNameHash());
     ASSERT_EQ(0x000000ebu, ImmutableString("trunc(00B").mangledNameHash());
-    ASSERT_EQ(0x0000037au, ImmutableString("trunc(10B").mangledNameHash());
-    ASSERT_EQ(0x00000343u, ImmutableString("trunc(20B").mangledNameHash());
+    ASSERT_EQ(0x0000037bu, ImmutableString("trunc(10B").mangledNameHash());
+    ASSERT_EQ(0x00000344u, ImmutableString("trunc(20B").mangledNameHash());
     ASSERT_EQ(0x000001f9u, ImmutableString("trunc(30B").mangledNameHash());
     ASSERT_EQ(0x000000d0u, ImmutableString("round(00B").mangledNameHash());
-    ASSERT_EQ(0x00000363u, ImmutableString("round(10B").mangledNameHash());
-    ASSERT_EQ(0x00000226u, ImmutableString("round(20B").mangledNameHash());
+    ASSERT_EQ(0x00000364u, ImmutableString("round(10B").mangledNameHash());
+    ASSERT_EQ(0x00000227u, ImmutableString("round(20B").mangledNameHash());
     ASSERT_EQ(0x0000010cu, ImmutableString("round(30B").mangledNameHash());
-    ASSERT_EQ(0x000002c8u, ImmutableString("roundEven(00B").mangledNameHash());
+    ASSERT_EQ(0x000002c9u, ImmutableString("roundEven(00B").mangledNameHash());
     ASSERT_EQ(0x00000191u, ImmutableString("roundEven(10B").mangledNameHash());
     ASSERT_EQ(0x0000013bu, ImmutableString("roundEven(20B").mangledNameHash());
     ASSERT_EQ(0x0000001cu, ImmutableString("roundEven(30B").mangledNameHash());
-    ASSERT_EQ(0x00000232u, ImmutableString("ceil(00B").mangledNameHash());
-    ASSERT_EQ(0x00000325u, ImmutableString("ceil(10B").mangledNameHash());
+    ASSERT_EQ(0x00000233u, ImmutableString("ceil(00B").mangledNameHash());
+    ASSERT_EQ(0x00000326u, ImmutableString("ceil(10B").mangledNameHash());
     ASSERT_EQ(0x00000098u, ImmutableString("ceil(20B").mangledNameHash());
     ASSERT_EQ(0x0000014bu, ImmutableString("ceil(30B").mangledNameHash());
     ASSERT_EQ(0x00000175u, ImmutableString("fract(00B").mangledNameHash());
     ASSERT_EQ(0x00000061u, ImmutableString("fract(10B").mangledNameHash());
-    ASSERT_EQ(0x000002e9u, ImmutableString("fract(20B").mangledNameHash());
+    ASSERT_EQ(0x000002eau, ImmutableString("fract(20B").mangledNameHash());
     ASSERT_EQ(0x000001b6u, ImmutableString("fract(30B").mangledNameHash());
     ASSERT_EQ(0x0000018eu, ImmutableString("mod(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000154u, ImmutableString("mod(10B00B").mangledNameHash());
     ASSERT_EQ(0x000000b3u, ImmutableString("mod(20B00B").mangledNameHash());
     ASSERT_EQ(0x0000019fu, ImmutableString("mod(30B00B").mangledNameHash());
-    ASSERT_EQ(0x000002aau, ImmutableString("mod(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000207u, ImmutableString("mod(20B20B").mangledNameHash());
+    ASSERT_EQ(0x000002abu, ImmutableString("mod(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000208u, ImmutableString("mod(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000189u, ImmutableString("mod(30B30B").mangledNameHash());
     ASSERT_EQ(0x000001d0u, ImmutableString("min(00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000319u, ImmutableString("min(10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000031au, ImmutableString("min(10B00B").mangledNameHash());
     ASSERT_EQ(0x000000aeu, ImmutableString("min(20B00B").mangledNameHash());
     ASSERT_EQ(0x00000072u, ImmutableString("min(30B00B").mangledNameHash());
     ASSERT_EQ(0x0000008bu, ImmutableString("min(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000210u, ImmutableString("min(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000211u, ImmutableString("min(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000005bu, ImmutableString("min(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000340u, ImmutableString("min(00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000341u, ImmutableString("min(00D00D").mangledNameHash());
     ASSERT_EQ(0x00000045u, ImmutableString("min(10D10D").mangledNameHash());
-    ASSERT_EQ(0x00000270u, ImmutableString("min(20D20D").mangledNameHash());
-    ASSERT_EQ(0x00000240u, ImmutableString("min(30D30D").mangledNameHash());
-    ASSERT_EQ(0x000002c3u, ImmutableString("min(10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000271u, ImmutableString("min(20D20D").mangledNameHash());
+    ASSERT_EQ(0x00000241u, ImmutableString("min(30D30D").mangledNameHash());
+    ASSERT_EQ(0x000002c4u, ImmutableString("min(10D00D").mangledNameHash());
     ASSERT_EQ(0x00000039u, ImmutableString("min(20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000038au, ImmutableString("min(30D00D").mangledNameHash());
-    ASSERT_EQ(0x0000030cu, ImmutableString("min(00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000035cu, ImmutableString("min(10E10E").mangledNameHash());
+    ASSERT_EQ(0x0000038bu, ImmutableString("min(30D00D").mangledNameHash());
+    ASSERT_EQ(0x0000030du, ImmutableString("min(00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000035du, ImmutableString("min(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000017u, ImmutableString("min(20E20E").mangledNameHash());
     ASSERT_EQ(0x000001ccu, ImmutableString("min(30E30E").mangledNameHash());
     ASSERT_EQ(0x000000cbu, ImmutableString("min(10E00E").mangledNameHash());
     ASSERT_EQ(0x000001dau, ImmutableString("min(20E00E").mangledNameHash());
     ASSERT_EQ(0x00000177u, ImmutableString("min(30E00E").mangledNameHash());
     ASSERT_EQ(0x0000013au, ImmutableString("max(00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000251u, ImmutableString("max(10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000252u, ImmutableString("max(10B00B").mangledNameHash());
     ASSERT_EQ(0x00000032u, ImmutableString("max(20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000026fu, ImmutableString("max(30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000372u, ImmutableString("max(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000290u, ImmutableString("max(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000270u, ImmutableString("max(30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000373u, ImmutableString("max(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000291u, ImmutableString("max(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000011cu, ImmutableString("max(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000149u, ImmutableString("max(00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000214u, ImmutableString("max(10D10D").mangledNameHash());
-    ASSERT_EQ(0x00000212u, ImmutableString("max(20D20D").mangledNameHash());
-    ASSERT_EQ(0x0000030du, ImmutableString("max(30D30D").mangledNameHash());
+    ASSERT_EQ(0x00000215u, ImmutableString("max(10D10D").mangledNameHash());
+    ASSERT_EQ(0x00000213u, ImmutableString("max(20D20D").mangledNameHash());
+    ASSERT_EQ(0x0000030eu, ImmutableString("max(30D30D").mangledNameHash());
     ASSERT_EQ(0x0000010au, ImmutableString("max(10D00D").mangledNameHash());
     ASSERT_EQ(0x000000bcu, ImmutableString("max(20D00D").mangledNameHash());
     ASSERT_EQ(0x00000053u, ImmutableString("max(30D00D").mangledNameHash());
-    ASSERT_EQ(0x0000038du, ImmutableString("max(00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000038eu, ImmutableString("max(00E00E").mangledNameHash());
     ASSERT_EQ(0x0000011bu, ImmutableString("max(10E10E").mangledNameHash());
     ASSERT_EQ(0x0000015bu, ImmutableString("max(20E20E").mangledNameHash());
     ASSERT_EQ(0x000001c3u, ImmutableString("max(30E30E").mangledNameHash());
     ASSERT_EQ(0x000001e9u, ImmutableString("max(10E00E").mangledNameHash());
-    ASSERT_EQ(0x000002c6u, ImmutableString("max(20E00E").mangledNameHash());
+    ASSERT_EQ(0x000002c7u, ImmutableString("max(20E00E").mangledNameHash());
     ASSERT_EQ(0x00000143u, ImmutableString("max(30E00E").mangledNameHash());
     ASSERT_EQ(0x00000171u, ImmutableString("clamp(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000383u, ImmutableString("clamp(10B00B00B").mangledNameHash());
-    ASSERT_EQ(0x0000027bu, ImmutableString("clamp(20B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000384u, ImmutableString("clamp(10B00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000027cu, ImmutableString("clamp(20B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000100u, ImmutableString("clamp(30B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000020u, ImmutableString("clamp(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000033au, ImmutableString("clamp(20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000033bu, ImmutableString("clamp(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000033u, ImmutableString("clamp(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x0000010eu, ImmutableString("clamp(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000002u, ImmutableString("clamp(10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000002cdu, ImmutableString("clamp(20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000382u, ImmutableString("clamp(30D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000002ceu, ImmutableString("clamp(20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000383u, ImmutableString("clamp(30D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000009au, ImmutableString("clamp(10D10D10D").mangledNameHash());
     ASSERT_EQ(0x000001e6u, ImmutableString("clamp(20D20D20D").mangledNameHash());
-    ASSERT_EQ(0x000002f1u, ImmutableString("clamp(30D30D30D").mangledNameHash());
+    ASSERT_EQ(0x000002f2u, ImmutableString("clamp(30D30D30D").mangledNameHash());
     ASSERT_EQ(0x00000011u, ImmutableString("clamp(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x000002ccu, ImmutableString("clamp(10E00E00E").mangledNameHash());
-    ASSERT_EQ(0x000002f8u, ImmutableString("clamp(20E00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000230u, ImmutableString("clamp(30E00E00E").mangledNameHash());
+    ASSERT_EQ(0x000002cdu, ImmutableString("clamp(10E00E00E").mangledNameHash());
+    ASSERT_EQ(0x000002f9u, ImmutableString("clamp(20E00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000231u, ImmutableString("clamp(30E00E00E").mangledNameHash());
     ASSERT_EQ(0x0000011du, ImmutableString("clamp(10E10E10E").mangledNameHash());
     ASSERT_EQ(0x000000bau, ImmutableString("clamp(20E20E20E").mangledNameHash());
     ASSERT_EQ(0x000000a3u, ImmutableString("clamp(30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000220u, ImmutableString("mix(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000002efu, ImmutableString("mix(10B10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000221u, ImmutableString("mix(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000002f0u, ImmutableString("mix(10B10B00B").mangledNameHash());
     ASSERT_EQ(0x0000001fu, ImmutableString("mix(20B20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000031au, ImmutableString("mix(30B30B00B").mangledNameHash());
+    ASSERT_EQ(0x0000031bu, ImmutableString("mix(30B30B00B").mangledNameHash());
     ASSERT_EQ(0x000001afu, ImmutableString("mix(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000024fu, ImmutableString("mix(20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000357u, ImmutableString("mix(30B30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000250u, ImmutableString("mix(20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000358u, ImmutableString("mix(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x00000055u, ImmutableString("mix(00B00B00F").mangledNameHash());
     ASSERT_EQ(0x000001aeu, ImmutableString("mix(10B10B10F").mangledNameHash());
-    ASSERT_EQ(0x0000024cu, ImmutableString("mix(20B20B20F").mangledNameHash());
-    ASSERT_EQ(0x000002fbu, ImmutableString("mix(30B30B30F").mangledNameHash());
+    ASSERT_EQ(0x0000024du, ImmutableString("mix(20B20B20F").mangledNameHash());
+    ASSERT_EQ(0x000002fcu, ImmutableString("mix(30B30B30F").mangledNameHash());
     ASSERT_EQ(0x00000197u, ImmutableString("step(00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000271u, ImmutableString("step(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000282u, ImmutableString("step(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000273u, ImmutableString("step(30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000272u, ImmutableString("step(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000283u, ImmutableString("step(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000274u, ImmutableString("step(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000079u, ImmutableString("step(00B10B").mangledNameHash());
     ASSERT_EQ(0x00000024u, ImmutableString("step(00B20B").mangledNameHash());
-    ASSERT_EQ(0x00000298u, ImmutableString("step(00B30B").mangledNameHash());
-    ASSERT_EQ(0x00000332u, ImmutableString("smoothstep(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000219u, ImmutableString("smoothstep(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000390u, ImmutableString("smoothstep(20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000338u, ImmutableString("smoothstep(30B30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000299u, ImmutableString("step(00B30B").mangledNameHash());
+    ASSERT_EQ(0x00000333u, ImmutableString("smoothstep(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000021au, ImmutableString("smoothstep(10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000391u, ImmutableString("smoothstep(20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000339u, ImmutableString("smoothstep(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x000001eau, ImmutableString("smoothstep(00B00B10B").mangledNameHash());
     ASSERT_EQ(0x000000d1u, ImmutableString("smoothstep(00B00B20B").mangledNameHash());
-    ASSERT_EQ(0x00000314u, ImmutableString("smoothstep(00B00B30B").mangledNameHash());
+    ASSERT_EQ(0x00000315u, ImmutableString("smoothstep(00B00B30B").mangledNameHash());
     ASSERT_EQ(0x00000005u, ImmutableString("modf(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000071u, ImmutableString("modf(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000239u, ImmutableString("modf(20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000023au, ImmutableString("modf(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000138u, ImmutableString("modf(30B30B").mangledNameHash());
-    ASSERT_EQ(0x0000022cu, ImmutableString("isnan(00B").mangledNameHash());
-    ASSERT_EQ(0x00000370u, ImmutableString("isnan(10B").mangledNameHash());
+    ASSERT_EQ(0x0000022du, ImmutableString("isnan(00B").mangledNameHash());
+    ASSERT_EQ(0x00000371u, ImmutableString("isnan(10B").mangledNameHash());
     ASSERT_EQ(0x00000139u, ImmutableString("isnan(20B").mangledNameHash());
     ASSERT_EQ(0x000001c4u, ImmutableString("isnan(30B").mangledNameHash());
     ASSERT_EQ(0x0000019au, ImmutableString("isinf(00B").mangledNameHash());
-    ASSERT_EQ(0x000002cfu, ImmutableString("isinf(10B").mangledNameHash());
-    ASSERT_EQ(0x00000355u, ImmutableString("isinf(20B").mangledNameHash());
+    ASSERT_EQ(0x000002d0u, ImmutableString("isinf(10B").mangledNameHash());
+    ASSERT_EQ(0x00000356u, ImmutableString("isinf(20B").mangledNameHash());
     ASSERT_EQ(0x000000c1u, ImmutableString("isinf(30B").mangledNameHash());
-    ASSERT_EQ(0x0000038bu, ImmutableString("floatBitsToInt(00B").mangledNameHash());
-    ASSERT_EQ(0x00000250u, ImmutableString("floatBitsToInt(10B").mangledNameHash());
-    ASSERT_EQ(0x00000315u, ImmutableString("floatBitsToInt(20B").mangledNameHash());
+    ASSERT_EQ(0x0000038cu, ImmutableString("floatBitsToInt(00B").mangledNameHash());
+    ASSERT_EQ(0x00000251u, ImmutableString("floatBitsToInt(10B").mangledNameHash());
+    ASSERT_EQ(0x00000316u, ImmutableString("floatBitsToInt(20B").mangledNameHash());
     ASSERT_EQ(0x00000140u, ImmutableString("floatBitsToInt(30B").mangledNameHash());
-    ASSERT_EQ(0x00000395u, ImmutableString("floatBitsToUint(00B").mangledNameHash());
+    ASSERT_EQ(0x00000396u, ImmutableString("floatBitsToUint(00B").mangledNameHash());
     ASSERT_EQ(0x000000b6u, ImmutableString("floatBitsToUint(10B").mangledNameHash());
     ASSERT_EQ(0x00000041u, ImmutableString("floatBitsToUint(20B").mangledNameHash());
-    ASSERT_EQ(0x0000025du, ImmutableString("floatBitsToUint(30B").mangledNameHash());
+    ASSERT_EQ(0x0000025eu, ImmutableString("floatBitsToUint(30B").mangledNameHash());
     ASSERT_EQ(0x00000063u, ImmutableString("intBitsToFloat(00D").mangledNameHash());
     ASSERT_EQ(0x000001a7u, ImmutableString("intBitsToFloat(10D").mangledNameHash());
     ASSERT_EQ(0x00000174u, ImmutableString("intBitsToFloat(20D").mangledNameHash());
     ASSERT_EQ(0x00000058u, ImmutableString("intBitsToFloat(30D").mangledNameHash());
     ASSERT_EQ(0x0000003bu, ImmutableString("uintBitsToFloat(00E").mangledNameHash());
     ASSERT_EQ(0x00000155u, ImmutableString("uintBitsToFloat(10E").mangledNameHash());
-    ASSERT_EQ(0x000002a6u, ImmutableString("uintBitsToFloat(20E").mangledNameHash());
+    ASSERT_EQ(0x000002a7u, ImmutableString("uintBitsToFloat(20E").mangledNameHash());
     ASSERT_EQ(0x00000026u, ImmutableString("uintBitsToFloat(30E").mangledNameHash());
     ASSERT_EQ(0x00000093u, ImmutableString("frexp(00B00D").mangledNameHash());
     ASSERT_EQ(0x000001e8u, ImmutableString("frexp(10B10D").mangledNameHash());
     ASSERT_EQ(0x00000173u, ImmutableString("frexp(20B20D").mangledNameHash());
     ASSERT_EQ(0x000001cau, ImmutableString("frexp(30B30D").mangledNameHash());
     ASSERT_EQ(0x00000013u, ImmutableString("ldexp(00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000318u, ImmutableString("ldexp(10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000350u, ImmutableString("ldexp(20B20D").mangledNameHash());
-    ASSERT_EQ(0x0000026eu, ImmutableString("ldexp(30B30D").mangledNameHash());
-    ASSERT_EQ(0x0000025cu, ImmutableString("packSnorm2x16(10B").mangledNameHash());
-    ASSERT_EQ(0x000002d4u, ImmutableString("packHalf2x16(10B").mangledNameHash());
+    ASSERT_EQ(0x00000319u, ImmutableString("ldexp(10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000351u, ImmutableString("ldexp(20B20D").mangledNameHash());
+    ASSERT_EQ(0x0000026fu, ImmutableString("ldexp(30B30D").mangledNameHash());
+    ASSERT_EQ(0x0000025du, ImmutableString("packSnorm2x16(10B").mangledNameHash());
+    ASSERT_EQ(0x000002d5u, ImmutableString("packHalf2x16(10B").mangledNameHash());
     ASSERT_EQ(0x000001efu, ImmutableString("unpackSnorm2x16(00E").mangledNameHash());
     ASSERT_EQ(0x00000103u, ImmutableString("unpackHalf2x16(00E").mangledNameHash());
-    ASSERT_EQ(0x000002afu, ImmutableString("packUnorm2x16(10B").mangledNameHash());
+    ASSERT_EQ(0x000002b0u, ImmutableString("packUnorm2x16(10B").mangledNameHash());
     ASSERT_EQ(0x0000007cu, ImmutableString("unpackUnorm2x16(00E").mangledNameHash());
     ASSERT_EQ(0x00000091u, ImmutableString("packUnorm4x8(30B").mangledNameHash());
-    ASSERT_EQ(0x000002eeu, ImmutableString("packSnorm4x8(30B").mangledNameHash());
-    ASSERT_EQ(0x000002a7u, ImmutableString("unpackUnorm4x8(00E").mangledNameHash());
+    ASSERT_EQ(0x000002efu, ImmutableString("packSnorm4x8(30B").mangledNameHash());
+    ASSERT_EQ(0x000002a8u, ImmutableString("unpackUnorm4x8(00E").mangledNameHash());
     ASSERT_EQ(0x00000132u, ImmutableString("unpackSnorm4x8(00E").mangledNameHash());
     ASSERT_EQ(0x000001fbu, ImmutableString("length(00B").mangledNameHash());
     ASSERT_EQ(0x000000edu, ImmutableString("length(10B").mangledNameHash());
-    ASSERT_EQ(0x0000037eu, ImmutableString("length(20B").mangledNameHash());
-    ASSERT_EQ(0x00000248u, ImmutableString("length(30B").mangledNameHash());
-    ASSERT_EQ(0x00000234u, ImmutableString("distance(00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000037fu, ImmutableString("length(20B").mangledNameHash());
+    ASSERT_EQ(0x00000249u, ImmutableString("length(30B").mangledNameHash());
+    ASSERT_EQ(0x00000235u, ImmutableString("distance(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000152u, ImmutableString("distance(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000019cu, ImmutableString("distance(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000e7u, ImmutableString("distance(30B30B").mangledNameHash());
     ASSERT_EQ(0x000000f0u, ImmutableString("dot(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000102u, ImmutableString("dot(10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000032bu, ImmutableString("dot(20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000032cu, ImmutableString("dot(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000f2u, ImmutableString("dot(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000279u, ImmutableString("cross(20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000027au, ImmutableString("cross(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000a7u, ImmutableString("normalize(00B").mangledNameHash());
     ASSERT_EQ(0x000001eeu, ImmutableString("normalize(10B").mangledNameHash());
     ASSERT_EQ(0x000001d5u, ImmutableString("normalize(20B").mangledNameHash());
-    ASSERT_EQ(0x00000337u, ImmutableString("normalize(30B").mangledNameHash());
-    ASSERT_EQ(0x000002b0u, ImmutableString("faceforward(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000002bbu, ImmutableString("faceforward(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000286u, ImmutableString("faceforward(20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000022eu, ImmutableString("faceforward(30B30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000338u, ImmutableString("normalize(30B").mangledNameHash());
+    ASSERT_EQ(0x000002b1u, ImmutableString("faceforward(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000002bcu, ImmutableString("faceforward(10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000287u, ImmutableString("faceforward(20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000022fu, ImmutableString("faceforward(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x000000b2u, ImmutableString("reflect(00B00B").mangledNameHash());
     ASSERT_EQ(0x000000b5u, ImmutableString("reflect(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000153u, ImmutableString("reflect(20B20B").mangledNameHash());
@@ -313,327 +313,327 @@
     ASSERT_EQ(0x000001abu, ImmutableString("refract(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x000000d9u, ImmutableString("refract(10B10B00B").mangledNameHash());
     ASSERT_EQ(0x000001a9u, ImmutableString("refract(20B20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000021cu, ImmutableString("refract(30B30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000367u, ImmutableString("matrixCompMult(50B50B").mangledNameHash());
+    ASSERT_EQ(0x0000021du, ImmutableString("refract(30B30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000368u, ImmutableString("matrixCompMult(50B50B").mangledNameHash());
     ASSERT_EQ(0x00000104u, ImmutableString("matrixCompMult(A0BA0B").mangledNameHash());
-    ASSERT_EQ(0x0000027eu, ImmutableString("matrixCompMult(F0BF0B").mangledNameHash());
-    ASSERT_EQ(0x00000227u, ImmutableString("matrixCompMult(90B90B").mangledNameHash());
+    ASSERT_EQ(0x0000027fu, ImmutableString("matrixCompMult(F0BF0B").mangledNameHash());
+    ASSERT_EQ(0x00000228u, ImmutableString("matrixCompMult(90B90B").mangledNameHash());
     ASSERT_EQ(0x000001ecu, ImmutableString("matrixCompMult(60B60B").mangledNameHash());
     ASSERT_EQ(0x0000004du, ImmutableString("matrixCompMult(D0BD0B").mangledNameHash());
     ASSERT_EQ(0x0000015cu, ImmutableString("matrixCompMult(70B70B").mangledNameHash());
     ASSERT_EQ(0x000001fau, ImmutableString("matrixCompMult(E0BE0B").mangledNameHash());
-    ASSERT_EQ(0x00000277u, ImmutableString("matrixCompMult(B0BB0B").mangledNameHash());
-    ASSERT_EQ(0x00000341u, ImmutableString("outerProduct(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000278u, ImmutableString("matrixCompMult(B0BB0B").mangledNameHash());
+    ASSERT_EQ(0x00000342u, ImmutableString("outerProduct(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000130u, ImmutableString("outerProduct(20B20B").mangledNameHash());
-    ASSERT_EQ(0x00000292u, ImmutableString("outerProduct(30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000293u, ImmutableString("outerProduct(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000184u, ImmutableString("outerProduct(20B10B").mangledNameHash());
     ASSERT_EQ(0x000000fcu, ImmutableString("outerProduct(10B20B").mangledNameHash());
     ASSERT_EQ(0x0000013fu, ImmutableString("outerProduct(30B10B").mangledNameHash());
-    ASSERT_EQ(0x0000020bu, ImmutableString("outerProduct(10B30B").mangledNameHash());
+    ASSERT_EQ(0x0000020cu, ImmutableString("outerProduct(10B30B").mangledNameHash());
     ASSERT_EQ(0x00000181u, ImmutableString("outerProduct(30B20B").mangledNameHash());
     ASSERT_EQ(0x00000019u, ImmutableString("outerProduct(20B30B").mangledNameHash());
     ASSERT_EQ(0x00000012u, ImmutableString("transpose(50B").mangledNameHash());
-    ASSERT_EQ(0x000002fdu, ImmutableString("transpose(A0B").mangledNameHash());
+    ASSERT_EQ(0x000002feu, ImmutableString("transpose(A0B").mangledNameHash());
     ASSERT_EQ(0x0000009du, ImmutableString("transpose(F0B").mangledNameHash());
-    ASSERT_EQ(0x000002a0u, ImmutableString("transpose(60B").mangledNameHash());
-    ASSERT_EQ(0x0000032cu, ImmutableString("transpose(90B").mangledNameHash());
+    ASSERT_EQ(0x000002a1u, ImmutableString("transpose(60B").mangledNameHash());
+    ASSERT_EQ(0x0000032du, ImmutableString("transpose(90B").mangledNameHash());
     ASSERT_EQ(0x0000002au, ImmutableString("transpose(70B").mangledNameHash());
     ASSERT_EQ(0x000001b2u, ImmutableString("transpose(D0B").mangledNameHash());
-    ASSERT_EQ(0x00000311u, ImmutableString("transpose(B0B").mangledNameHash());
+    ASSERT_EQ(0x00000312u, ImmutableString("transpose(B0B").mangledNameHash());
     ASSERT_EQ(0x00000062u, ImmutableString("transpose(E0B").mangledNameHash());
     ASSERT_EQ(0x00000073u, ImmutableString("determinant(50B").mangledNameHash());
     ASSERT_EQ(0x0000000bu, ImmutableString("determinant(A0B").mangledNameHash());
-    ASSERT_EQ(0x000002fcu, ImmutableString("determinant(F0B").mangledNameHash());
+    ASSERT_EQ(0x000002fdu, ImmutableString("determinant(F0B").mangledNameHash());
     ASSERT_EQ(0x00000101u, ImmutableString("inverse(50B").mangledNameHash());
     ASSERT_EQ(0x000001c0u, ImmutableString("inverse(A0B").mangledNameHash());
     ASSERT_EQ(0x000001d9u, ImmutableString("inverse(F0B").mangledNameHash());
-    ASSERT_EQ(0x000002ebu, ImmutableString("lessThan(10B10B").mangledNameHash());
+    ASSERT_EQ(0x000002ecu, ImmutableString("lessThan(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000074u, ImmutableString("lessThan(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000c3u, ImmutableString("lessThan(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000124u, ImmutableString("lessThan(10D10D").mangledNameHash());
     ASSERT_EQ(0x000000b4u, ImmutableString("lessThan(20D20D").mangledNameHash());
     ASSERT_EQ(0x000001f1u, ImmutableString("lessThan(30D30D").mangledNameHash());
     ASSERT_EQ(0x00000097u, ImmutableString("lessThan(10E10E").mangledNameHash());
-    ASSERT_EQ(0x00000278u, ImmutableString("lessThan(20E20E").mangledNameHash());
+    ASSERT_EQ(0x00000279u, ImmutableString("lessThan(20E20E").mangledNameHash());
     ASSERT_EQ(0x00000025u, ImmutableString("lessThan(30E30E").mangledNameHash());
     ASSERT_EQ(0x0000004eu, ImmutableString("lessThanEqual(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000003cu, ImmutableString("lessThanEqual(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000015u, ImmutableString("lessThanEqual(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000342u, ImmutableString("lessThanEqual(10D10D").mangledNameHash());
-    ASSERT_EQ(0x00000303u, ImmutableString("lessThanEqual(20D20D").mangledNameHash());
-    ASSERT_EQ(0x0000025eu, ImmutableString("lessThanEqual(30D30D").mangledNameHash());
-    ASSERT_EQ(0x0000023du, ImmutableString("lessThanEqual(10E10E").mangledNameHash());
-    ASSERT_EQ(0x00000293u, ImmutableString("lessThanEqual(20E20E").mangledNameHash());
+    ASSERT_EQ(0x00000343u, ImmutableString("lessThanEqual(10D10D").mangledNameHash());
+    ASSERT_EQ(0x00000304u, ImmutableString("lessThanEqual(20D20D").mangledNameHash());
+    ASSERT_EQ(0x0000025fu, ImmutableString("lessThanEqual(30D30D").mangledNameHash());
+    ASSERT_EQ(0x0000023eu, ImmutableString("lessThanEqual(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000294u, ImmutableString("lessThanEqual(20E20E").mangledNameHash());
     ASSERT_EQ(0x000000c9u, ImmutableString("lessThanEqual(30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000377u, ImmutableString("greaterThan(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000378u, ImmutableString("greaterThan(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000069u, ImmutableString("greaterThan(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000eau, ImmutableString("greaterThan(30B30B").mangledNameHash());
     ASSERT_EQ(0x000000dcu, ImmutableString("greaterThan(10D10D").mangledNameHash());
     ASSERT_EQ(0x000000e8u, ImmutableString("greaterThan(20D20D").mangledNameHash());
     ASSERT_EQ(0x000000dbu, ImmutableString("greaterThan(30D30D").mangledNameHash());
-    ASSERT_EQ(0x00000387u, ImmutableString("greaterThan(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000388u, ImmutableString("greaterThan(10E10E").mangledNameHash());
     ASSERT_EQ(0x000001a4u, ImmutableString("greaterThan(20E20E").mangledNameHash());
     ASSERT_EQ(0x000001e7u, ImmutableString("greaterThan(30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000328u, ImmutableString("greaterThanEqual(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000222u, ImmutableString("greaterThanEqual(20B20B").mangledNameHash());
-    ASSERT_EQ(0x000002dau, ImmutableString("greaterThanEqual(30B30B").mangledNameHash());
+    ASSERT_EQ(0x00000329u, ImmutableString("greaterThanEqual(10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000223u, ImmutableString("greaterThanEqual(20B20B").mangledNameHash());
+    ASSERT_EQ(0x000002dbu, ImmutableString("greaterThanEqual(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000015fu, ImmutableString("greaterThanEqual(10D10D").mangledNameHash());
     ASSERT_EQ(0x00000016u, ImmutableString("greaterThanEqual(20D20D").mangledNameHash());
-    ASSERT_EQ(0x00000351u, ImmutableString("greaterThanEqual(30D30D").mangledNameHash());
-    ASSERT_EQ(0x00000263u, ImmutableString("greaterThanEqual(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000352u, ImmutableString("greaterThanEqual(30D30D").mangledNameHash());
+    ASSERT_EQ(0x00000264u, ImmutableString("greaterThanEqual(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000123u, ImmutableString("greaterThanEqual(20E20E").mangledNameHash());
-    ASSERT_EQ(0x00000249u, ImmutableString("greaterThanEqual(30E30E").mangledNameHash());
-    ASSERT_EQ(0x0000036du, ImmutableString("equal(10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000024au, ImmutableString("greaterThanEqual(30E30E").mangledNameHash());
+    ASSERT_EQ(0x0000036eu, ImmutableString("equal(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000179u, ImmutableString("equal(20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000036au, ImmutableString("equal(30B30B").mangledNameHash());
+    ASSERT_EQ(0x0000036bu, ImmutableString("equal(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000052u, ImmutableString("equal(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000002b8u, ImmutableString("equal(20D20D").mangledNameHash());
-    ASSERT_EQ(0x0000025au, ImmutableString("equal(30D30D").mangledNameHash());
-    ASSERT_EQ(0x0000035bu, ImmutableString("equal(10E10E").mangledNameHash());
-    ASSERT_EQ(0x0000021fu, ImmutableString("equal(20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000029au, ImmutableString("equal(30E30E").mangledNameHash());
+    ASSERT_EQ(0x000002b9u, ImmutableString("equal(20D20D").mangledNameHash());
+    ASSERT_EQ(0x0000025bu, ImmutableString("equal(30D30D").mangledNameHash());
+    ASSERT_EQ(0x0000035cu, ImmutableString("equal(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000220u, ImmutableString("equal(20E20E").mangledNameHash());
+    ASSERT_EQ(0x0000029bu, ImmutableString("equal(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000157u, ImmutableString("equal(10F10F").mangledNameHash());
-    ASSERT_EQ(0x00000368u, ImmutableString("equal(20F20F").mangledNameHash());
-    ASSERT_EQ(0x000002deu, ImmutableString("equal(30F30F").mangledNameHash());
+    ASSERT_EQ(0x00000369u, ImmutableString("equal(20F20F").mangledNameHash());
+    ASSERT_EQ(0x000002dfu, ImmutableString("equal(30F30F").mangledNameHash());
     ASSERT_EQ(0x000001f5u, ImmutableString("notEqual(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000352u, ImmutableString("notEqual(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000353u, ImmutableString("notEqual(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000190u, ImmutableString("notEqual(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000002acu, ImmutableString("notEqual(10D10D").mangledNameHash());
+    ASSERT_EQ(0x000002adu, ImmutableString("notEqual(10D10D").mangledNameHash());
     ASSERT_EQ(0x00000007u, ImmutableString("notEqual(20D20D").mangledNameHash());
     ASSERT_EQ(0x000000d8u, ImmutableString("notEqual(30D30D").mangledNameHash());
-    ASSERT_EQ(0x00000365u, ImmutableString("notEqual(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000366u, ImmutableString("notEqual(10E10E").mangledNameHash());
     ASSERT_EQ(0x000001beu, ImmutableString("notEqual(20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000023bu, ImmutableString("notEqual(30E30E").mangledNameHash());
-    ASSERT_EQ(0x0000032fu, ImmutableString("notEqual(10F10F").mangledNameHash());
+    ASSERT_EQ(0x0000023cu, ImmutableString("notEqual(30E30E").mangledNameHash());
+    ASSERT_EQ(0x00000330u, ImmutableString("notEqual(10F10F").mangledNameHash());
     ASSERT_EQ(0x00000188u, ImmutableString("notEqual(20F20F").mangledNameHash());
-    ASSERT_EQ(0x000002e1u, ImmutableString("notEqual(30F30F").mangledNameHash());
-    ASSERT_EQ(0x00000254u, ImmutableString("any(10F").mangledNameHash());
+    ASSERT_EQ(0x000002e2u, ImmutableString("notEqual(30F30F").mangledNameHash());
+    ASSERT_EQ(0x00000255u, ImmutableString("any(10F").mangledNameHash());
     ASSERT_EQ(0x000001fcu, ImmutableString("any(20F").mangledNameHash());
     ASSERT_EQ(0x000000e6u, ImmutableString("any(30F").mangledNameHash());
-    ASSERT_EQ(0x0000027au, ImmutableString("all(10F").mangledNameHash());
-    ASSERT_EQ(0x000002ceu, ImmutableString("all(20F").mangledNameHash());
+    ASSERT_EQ(0x0000027bu, ImmutableString("all(10F").mangledNameHash());
+    ASSERT_EQ(0x000002cfu, ImmutableString("all(20F").mangledNameHash());
     ASSERT_EQ(0x00000049u, ImmutableString("all(30F").mangledNameHash());
     ASSERT_EQ(0x00000095u, ImmutableString("not(10F").mangledNameHash());
     ASSERT_EQ(0x00000129u, ImmutableString("not(20F").mangledNameHash());
-    ASSERT_EQ(0x0000032du, ImmutableString("not(30F").mangledNameHash());
-    ASSERT_EQ(0x000002dfu, ImmutableString("bitfieldExtract(00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000032eu, ImmutableString("not(30F").mangledNameHash());
+    ASSERT_EQ(0x000002e0u, ImmutableString("bitfieldExtract(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000018au, ImmutableString("bitfieldExtract(10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000001f3u, ImmutableString("bitfieldExtract(20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000002c2u, ImmutableString("bitfieldExtract(30D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000002c3u, ImmutableString("bitfieldExtract(30D00D00D").mangledNameHash());
     ASSERT_EQ(0x000001f7u, ImmutableString("bitfieldExtract(00E00D00D").mangledNameHash());
     ASSERT_EQ(0x000000dfu, ImmutableString("bitfieldExtract(10E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000002a5u, ImmutableString("bitfieldExtract(20E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000002a6u, ImmutableString("bitfieldExtract(20E00D00D").mangledNameHash());
     ASSERT_EQ(0x0000015du, ImmutableString("bitfieldExtract(30E00D00D").mangledNameHash());
     ASSERT_EQ(0x0000001au, ImmutableString("bitfieldInsert(00D00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000339u, ImmutableString("bitfieldInsert(10D10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000033au, ImmutableString("bitfieldInsert(10D10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000042u, ImmutableString("bitfieldInsert(20D20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000d4u, ImmutableString("bitfieldInsert(30D30D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000067u, ImmutableString("bitfieldInsert(00E00E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000002edu, ImmutableString("bitfieldInsert(10E10E00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000021du, ImmutableString("bitfieldInsert(20E20E00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000037fu, ImmutableString("bitfieldInsert(30E30E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000002eeu, ImmutableString("bitfieldInsert(10E10E00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000021eu, ImmutableString("bitfieldInsert(20E20E00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000380u, ImmutableString("bitfieldInsert(30E30E00D00D").mangledNameHash());
     ASSERT_EQ(0x00000159u, ImmutableString("bitfieldReverse(00D").mangledNameHash());
-    ASSERT_EQ(0x00000275u, ImmutableString("bitfieldReverse(10D").mangledNameHash());
+    ASSERT_EQ(0x00000276u, ImmutableString("bitfieldReverse(10D").mangledNameHash());
     ASSERT_EQ(0x0000004fu, ImmutableString("bitfieldReverse(20D").mangledNameHash());
     ASSERT_EQ(0x0000016du, ImmutableString("bitfieldReverse(30D").mangledNameHash());
     ASSERT_EQ(0x0000015au, ImmutableString("bitfieldReverse(00E").mangledNameHash());
-    ASSERT_EQ(0x00000274u, ImmutableString("bitfieldReverse(10E").mangledNameHash());
+    ASSERT_EQ(0x00000275u, ImmutableString("bitfieldReverse(10E").mangledNameHash());
     ASSERT_EQ(0x00000050u, ImmutableString("bitfieldReverse(20E").mangledNameHash());
     ASSERT_EQ(0x0000016cu, ImmutableString("bitfieldReverse(30E").mangledNameHash());
     ASSERT_EQ(0x00000023u, ImmutableString("bitCount(00D").mangledNameHash());
-    ASSERT_EQ(0x00000299u, ImmutableString("bitCount(10D").mangledNameHash());
+    ASSERT_EQ(0x0000029au, ImmutableString("bitCount(10D").mangledNameHash());
     ASSERT_EQ(0x00000196u, ImmutableString("bitCount(20D").mangledNameHash());
     ASSERT_EQ(0x0000007au, ImmutableString("bitCount(30D").mangledNameHash());
     ASSERT_EQ(0x000000f3u, ImmutableString("bitCount(00E").mangledNameHash());
     ASSERT_EQ(0x0000014eu, ImmutableString("bitCount(10E").mangledNameHash());
-    ASSERT_EQ(0x000002b6u, ImmutableString("bitCount(20E").mangledNameHash());
+    ASSERT_EQ(0x000002b7u, ImmutableString("bitCount(20E").mangledNameHash());
     ASSERT_EQ(0x00000133u, ImmutableString("bitCount(30E").mangledNameHash());
-    ASSERT_EQ(0x000002d7u, ImmutableString("findLSB(00D").mangledNameHash());
+    ASSERT_EQ(0x000002d8u, ImmutableString("findLSB(00D").mangledNameHash());
     ASSERT_EQ(0x000001acu, ImmutableString("findLSB(10D").mangledNameHash());
     ASSERT_EQ(0x0000008fu, ImmutableString("findLSB(20D").mangledNameHash());
-    ASSERT_EQ(0x000002b4u, ImmutableString("findLSB(30D").mangledNameHash());
-    ASSERT_EQ(0x000002d6u, ImmutableString("findLSB(00E").mangledNameHash());
+    ASSERT_EQ(0x000002b5u, ImmutableString("findLSB(30D").mangledNameHash());
+    ASSERT_EQ(0x000002d7u, ImmutableString("findLSB(00E").mangledNameHash());
     ASSERT_EQ(0x000001adu, ImmutableString("findLSB(10E").mangledNameHash());
     ASSERT_EQ(0x0000008eu, ImmutableString("findLSB(20E").mangledNameHash());
-    ASSERT_EQ(0x000002b5u, ImmutableString("findLSB(30E").mangledNameHash());
-    ASSERT_EQ(0x000002a1u, ImmutableString("findMSB(00D").mangledNameHash());
+    ASSERT_EQ(0x000002b6u, ImmutableString("findLSB(30E").mangledNameHash());
+    ASSERT_EQ(0x000002a2u, ImmutableString("findMSB(00D").mangledNameHash());
     ASSERT_EQ(0x000000efu, ImmutableString("findMSB(10D").mangledNameHash());
     ASSERT_EQ(0x0000012bu, ImmutableString("findMSB(20D").mangledNameHash());
-    ASSERT_EQ(0x00000246u, ImmutableString("findMSB(30D").mangledNameHash());
-    ASSERT_EQ(0x000002a4u, ImmutableString("findMSB(00E").mangledNameHash());
+    ASSERT_EQ(0x00000247u, ImmutableString("findMSB(30D").mangledNameHash());
+    ASSERT_EQ(0x000002a5u, ImmutableString("findMSB(00E").mangledNameHash());
     ASSERT_EQ(0x000000eeu, ImmutableString("findMSB(10E").mangledNameHash());
     ASSERT_EQ(0x0000012cu, ImmutableString("findMSB(20E").mangledNameHash());
-    ASSERT_EQ(0x00000245u, ImmutableString("findMSB(30E").mangledNameHash());
-    ASSERT_EQ(0x00000223u, ImmutableString("uaddCarry(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000034cu, ImmutableString("uaddCarry(10E10E10E").mangledNameHash());
-    ASSERT_EQ(0x00000371u, ImmutableString("uaddCarry(20E20E20E").mangledNameHash());
+    ASSERT_EQ(0x00000246u, ImmutableString("findMSB(30E").mangledNameHash());
+    ASSERT_EQ(0x00000224u, ImmutableString("uaddCarry(00E00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000034du, ImmutableString("uaddCarry(10E10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000372u, ImmutableString("uaddCarry(20E20E20E").mangledNameHash());
     ASSERT_EQ(0x0000019eu, ImmutableString("uaddCarry(30E30E30E").mangledNameHash());
     ASSERT_EQ(0x000001c8u, ImmutableString("usubBorrow(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000036cu, ImmutableString("usubBorrow(10E10E10E").mangledNameHash());
+    ASSERT_EQ(0x0000036du, ImmutableString("usubBorrow(10E10E10E").mangledNameHash());
     ASSERT_EQ(0x000000f6u, ImmutableString("usubBorrow(20E20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000026bu, ImmutableString("usubBorrow(30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x0000030eu, ImmutableString("umulExtended(00E00E00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000026cu, ImmutableString("usubBorrow(30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x0000030fu, ImmutableString("umulExtended(00E00E00E00E").mangledNameHash());
     ASSERT_EQ(0x00000185u, ImmutableString("umulExtended(10E10E10E10E").mangledNameHash());
-    ASSERT_EQ(0x000002b1u, ImmutableString("umulExtended(20E20E20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000022du, ImmutableString("umulExtended(30E30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x000002b2u, ImmutableString("umulExtended(20E20E20E20E").mangledNameHash());
+    ASSERT_EQ(0x0000022eu, ImmutableString("umulExtended(30E30E30E30E").mangledNameHash());
     ASSERT_EQ(0x000001c5u, ImmutableString("imulExtended(00D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000085u, ImmutableString("imulExtended(10D10D10D10D").mangledNameHash());
     ASSERT_EQ(0x000000e5u, ImmutableString("imulExtended(20D20D20D20D").mangledNameHash());
     ASSERT_EQ(0x00000027u, ImmutableString("imulExtended(30D30D30D30D").mangledNameHash());
     ASSERT_EQ(0x00000094u, ImmutableString("texture2D(00I10B").mangledNameHash());
     ASSERT_EQ(0x00000127u, ImmutableString("texture2DProj(00I20B").mangledNameHash());
-    ASSERT_EQ(0x00000238u, ImmutableString("texture2DProj(00I30B").mangledNameHash());
-    ASSERT_EQ(0x0000020cu, ImmutableString("textureCube(00K20B").mangledNameHash());
-    ASSERT_EQ(0x0000033fu, ImmutableString("texture2D(00M10B").mangledNameHash());
-    ASSERT_EQ(0x000002a8u, ImmutableString("texture2DProj(00M20B").mangledNameHash());
-    ASSERT_EQ(0x000002adu, ImmutableString("texture2DProj(00M30B").mangledNameHash());
+    ASSERT_EQ(0x00000239u, ImmutableString("texture2DProj(00I30B").mangledNameHash());
+    ASSERT_EQ(0x0000020du, ImmutableString("textureCube(00K20B").mangledNameHash());
+    ASSERT_EQ(0x00000340u, ImmutableString("texture2D(00M10B").mangledNameHash());
+    ASSERT_EQ(0x000002a9u, ImmutableString("texture2DProj(00M20B").mangledNameHash());
+    ASSERT_EQ(0x000002aeu, ImmutableString("texture2DProj(00M30B").mangledNameHash());
     ASSERT_EQ(0x000000e4u, ImmutableString("texture2DRect(00O10B").mangledNameHash());
-    ASSERT_EQ(0x0000039cu, ImmutableString("texture2DRectProj(00O20B").mangledNameHash());
+    ASSERT_EQ(0x0000039du, ImmutableString("texture2DRectProj(00O20B").mangledNameHash());
     ASSERT_EQ(0x00000107u, ImmutableString("texture2DRectProj(00O30B").mangledNameHash());
     ASSERT_EQ(0x0000009cu, ImmutableString("texture(00O10B").mangledNameHash());
     ASSERT_EQ(0x000000fau, ImmutableString("textureProj(00O20B").mangledNameHash());
-    ASSERT_EQ(0x0000021au, ImmutableString("textureProj(00O30B").mangledNameHash());
+    ASSERT_EQ(0x0000021bu, ImmutableString("textureProj(00O30B").mangledNameHash());
     ASSERT_EQ(0x00000066u, ImmutableString("texture2DGradEXT(00I10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000002ffu, ImmutableString("texture2DProjGradEXT(00I20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000300u, ImmutableString("texture2DProjGradEXT(00I20B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000006cu, ImmutableString("texture2DProjGradEXT(00I30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001ceu, ImmutableString("textureCubeGradEXT(00K20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000001e4u, ImmutableString("texture2D(00I10B00B").mangledNameHash());
-    ASSERT_EQ(0x000002d5u, ImmutableString("texture2DProj(00I20B00B").mangledNameHash());
+    ASSERT_EQ(0x000002d6u, ImmutableString("texture2DProj(00I20B00B").mangledNameHash());
     ASSERT_EQ(0x000001cdu, ImmutableString("texture2DProj(00I30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000032au, ImmutableString("textureCube(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000027du, ImmutableString("dFdx(00B").mangledNameHash());
+    ASSERT_EQ(0x0000032bu, ImmutableString("textureCube(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000027eu, ImmutableString("dFdx(00B").mangledNameHash());
     ASSERT_EQ(0x0000016au, ImmutableString("dFdx(10B").mangledNameHash());
     ASSERT_EQ(0x00000119u, ImmutableString("dFdx(20B").mangledNameHash());
     ASSERT_EQ(0x00000010u, ImmutableString("dFdx(30B").mangledNameHash());
-    ASSERT_EQ(0x00000389u, ImmutableString("dFdy(00B").mangledNameHash());
+    ASSERT_EQ(0x0000038au, ImmutableString("dFdy(00B").mangledNameHash());
     ASSERT_EQ(0x0000013eu, ImmutableString("dFdy(10B").mangledNameHash());
     ASSERT_EQ(0x00000194u, ImmutableString("dFdy(20B").mangledNameHash());
-    ASSERT_EQ(0x000002cau, ImmutableString("dFdy(30B").mangledNameHash());
+    ASSERT_EQ(0x000002cbu, ImmutableString("dFdy(30B").mangledNameHash());
     ASSERT_EQ(0x0000013cu, ImmutableString("fwidth(00B").mangledNameHash());
     ASSERT_EQ(0x000000d6u, ImmutableString("fwidth(10B").mangledNameHash());
-    ASSERT_EQ(0x00000312u, ImmutableString("fwidth(20B").mangledNameHash());
-    ASSERT_EQ(0x0000024au, ImmutableString("fwidth(30B").mangledNameHash());
-    ASSERT_EQ(0x000002c9u, ImmutableString("texture2DLodEXT(00I10B00B").mangledNameHash());
-    ASSERT_EQ(0x000002e0u, ImmutableString("texture2DProjLodEXT(00I20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000313u, ImmutableString("fwidth(20B").mangledNameHash());
+    ASSERT_EQ(0x0000024bu, ImmutableString("fwidth(30B").mangledNameHash());
+    ASSERT_EQ(0x000002cau, ImmutableString("texture2DLodEXT(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x000002e1u, ImmutableString("texture2DProjLodEXT(00I20B00B").mangledNameHash());
     ASSERT_EQ(0x00000192u, ImmutableString("texture2DProjLodEXT(00I30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000349u, ImmutableString("textureCubeLodEXT(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000034au, ImmutableString("textureCubeLodEXT(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000001b1u, ImmutableString("texture3D(00J20B").mangledNameHash());
-    ASSERT_EQ(0x00000276u, ImmutableString("texture3DProj(00J30B").mangledNameHash());
-    ASSERT_EQ(0x00000233u, ImmutableString("texture3D(00J20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000025bu, ImmutableString("texture3DProj(00J30B00B").mangledNameHash());
-    ASSERT_EQ(0x000003a6u, ImmutableString("texture3DLod(00J20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000277u, ImmutableString("texture3DProj(00J30B").mangledNameHash());
+    ASSERT_EQ(0x00000234u, ImmutableString("texture3D(00J20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000025cu, ImmutableString("texture3DProj(00J30B00B").mangledNameHash());
+    ASSERT_EQ(0x000003a7u, ImmutableString("texture3DLod(00J20B00B").mangledNameHash());
     ASSERT_EQ(0x00000128u, ImmutableString("texture3DProjLod(00J30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000028cu, ImmutableString("texture2DLod(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000028du, ImmutableString("texture2DLod(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000105u, ImmutableString("texture2DProjLod(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000036fu, ImmutableString("texture2DProjLod(00I30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000391u, ImmutableString("textureCubeLod(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000370u, ImmutableString("texture2DProjLod(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000392u, ImmutableString("textureCubeLod(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000001cfu, ImmutableString("texture(00I10B").mangledNameHash());
-    ASSERT_EQ(0x00000269u, ImmutableString("texture(00R10B").mangledNameHash());
-    ASSERT_EQ(0x000002f9u, ImmutableString("texture(00X10B").mangledNameHash());
+    ASSERT_EQ(0x0000026au, ImmutableString("texture(00R10B").mangledNameHash());
+    ASSERT_EQ(0x000002fau, ImmutableString("texture(00X10B").mangledNameHash());
     ASSERT_EQ(0x00000117u, ImmutableString("texture(00J20B").mangledNameHash());
     ASSERT_EQ(0x00000183u, ImmutableString("texture(00S20B").mangledNameHash());
     ASSERT_EQ(0x00000090u, ImmutableString("texture(00Y20B").mangledNameHash());
-    ASSERT_EQ(0x0000031fu, ImmutableString("texture(00K20B").mangledNameHash());
+    ASSERT_EQ(0x00000320u, ImmutableString("texture(00K20B").mangledNameHash());
     ASSERT_EQ(0x00000089u, ImmutableString("texture(00T20B").mangledNameHash());
     ASSERT_EQ(0x00000044u, ImmutableString("texture(00Z20B").mangledNameHash());
     ASSERT_EQ(0x00000120u, ImmutableString("texture(00L20B").mangledNameHash());
     ASSERT_EQ(0x000000ddu, ImmutableString("texture(00U20B").mangledNameHash());
-    ASSERT_EQ(0x00000235u, ImmutableString("texture(00a20B").mangledNameHash());
+    ASSERT_EQ(0x00000236u, ImmutableString("texture(00a20B").mangledNameHash());
     ASSERT_EQ(0x0000002fu, ImmutableString("texture(00d20B").mangledNameHash());
-    ASSERT_EQ(0x00000358u, ImmutableString("texture(00e30B").mangledNameHash());
-    ASSERT_EQ(0x00000331u, ImmutableString("texture(00f30B").mangledNameHash());
+    ASSERT_EQ(0x00000359u, ImmutableString("texture(00e30B").mangledNameHash());
+    ASSERT_EQ(0x00000332u, ImmutableString("texture(00f30B").mangledNameHash());
     ASSERT_EQ(0x00000059u, ImmutableString("textureProj(00I20B").mangledNameHash());
-    ASSERT_EQ(0x00000384u, ImmutableString("textureProj(00R20B").mangledNameHash());
+    ASSERT_EQ(0x00000385u, ImmutableString("textureProj(00R20B").mangledNameHash());
     ASSERT_EQ(0x0000011au, ImmutableString("textureProj(00X20B").mangledNameHash());
-    ASSERT_EQ(0x00000213u, ImmutableString("textureProj(00I30B").mangledNameHash());
-    ASSERT_EQ(0x00000366u, ImmutableString("textureProj(00R30B").mangledNameHash());
-    ASSERT_EQ(0x0000037cu, ImmutableString("textureProj(00X30B").mangledNameHash());
+    ASSERT_EQ(0x00000214u, ImmutableString("textureProj(00I30B").mangledNameHash());
+    ASSERT_EQ(0x00000367u, ImmutableString("textureProj(00R30B").mangledNameHash());
+    ASSERT_EQ(0x0000037du, ImmutableString("textureProj(00X30B").mangledNameHash());
     ASSERT_EQ(0x00000141u, ImmutableString("textureProj(00J30B").mangledNameHash());
-    ASSERT_EQ(0x000002c7u, ImmutableString("textureProj(00S30B").mangledNameHash());
+    ASSERT_EQ(0x000002c8u, ImmutableString("textureProj(00S30B").mangledNameHash());
     ASSERT_EQ(0x00000195u, ImmutableString("textureProj(00Y30B").mangledNameHash());
-    ASSERT_EQ(0x000002fau, ImmutableString("textureProj(00d30B").mangledNameHash());
+    ASSERT_EQ(0x000002fbu, ImmutableString("textureProj(00d30B").mangledNameHash());
     ASSERT_EQ(0x0000015eu, ImmutableString("textureLod(00I10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000281u, ImmutableString("textureLod(00R10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000294u, ImmutableString("textureLod(00X10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000282u, ImmutableString("textureLod(00R10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000295u, ImmutableString("textureLod(00X10B00B").mangledNameHash());
     ASSERT_EQ(0x000000b7u, ImmutableString("textureLod(00J20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000304u, ImmutableString("textureLod(00S20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000305u, ImmutableString("textureLod(00S20B00B").mangledNameHash());
     ASSERT_EQ(0x00000035u, ImmutableString("textureLod(00Y20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000397u, ImmutableString("textureLod(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000398u, ImmutableString("textureLod(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000000f5u, ImmutableString("textureLod(00T20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000029du, ImmutableString("textureLod(00Z20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000029eu, ImmutableString("textureLod(00Z20B00B").mangledNameHash());
     ASSERT_EQ(0x00000009u, ImmutableString("textureLod(00L20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000036bu, ImmutableString("textureLod(00U20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000253u, ImmutableString("textureLod(00a20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000036cu, ImmutableString("textureLod(00U20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000254u, ImmutableString("textureLod(00a20B00B").mangledNameHash());
     ASSERT_EQ(0x00000145u, ImmutableString("textureLod(00d20B00B").mangledNameHash());
     ASSERT_EQ(0x000000bdu, ImmutableString("textureSize(00I00D").mangledNameHash());
     ASSERT_EQ(0x000000a5u, ImmutableString("textureSize(00R00D").mangledNameHash());
-    ASSERT_EQ(0x00000376u, ImmutableString("textureSize(00X00D").mangledNameHash());
+    ASSERT_EQ(0x00000377u, ImmutableString("textureSize(00X00D").mangledNameHash());
     ASSERT_EQ(0x000001b8u, ImmutableString("textureSize(00J00D").mangledNameHash());
-    ASSERT_EQ(0x00000326u, ImmutableString("textureSize(00S00D").mangledNameHash());
+    ASSERT_EQ(0x00000327u, ImmutableString("textureSize(00S00D").mangledNameHash());
     ASSERT_EQ(0x0000002du, ImmutableString("textureSize(00Y00D").mangledNameHash());
     ASSERT_EQ(0x00000028u, ImmutableString("textureSize(00K00D").mangledNameHash());
-    ASSERT_EQ(0x00000359u, ImmutableString("textureSize(00T00D").mangledNameHash());
-    ASSERT_EQ(0x000002c0u, ImmutableString("textureSize(00Z00D").mangledNameHash());
-    ASSERT_EQ(0x000002bcu, ImmutableString("textureSize(00L00D").mangledNameHash());
-    ASSERT_EQ(0x000002dbu, ImmutableString("textureSize(00U00D").mangledNameHash());
+    ASSERT_EQ(0x0000035au, ImmutableString("textureSize(00T00D").mangledNameHash());
+    ASSERT_EQ(0x000002c1u, ImmutableString("textureSize(00Z00D").mangledNameHash());
+    ASSERT_EQ(0x000002bdu, ImmutableString("textureSize(00L00D").mangledNameHash());
+    ASSERT_EQ(0x000002dcu, ImmutableString("textureSize(00U00D").mangledNameHash());
     ASSERT_EQ(0x000000deu, ImmutableString("textureSize(00a00D").mangledNameHash());
-    ASSERT_EQ(0x00000346u, ImmutableString("textureSize(00d00D").mangledNameHash());
+    ASSERT_EQ(0x00000347u, ImmutableString("textureSize(00d00D").mangledNameHash());
     ASSERT_EQ(0x000001bdu, ImmutableString("textureSize(00e00D").mangledNameHash());
-    ASSERT_EQ(0x000002f3u, ImmutableString("textureSize(00f00D").mangledNameHash());
+    ASSERT_EQ(0x000002f4u, ImmutableString("textureSize(00f00D").mangledNameHash());
     ASSERT_EQ(0x0000007bu, ImmutableString("textureProjLod(00I20B00B").mangledNameHash());
     ASSERT_EQ(0x000000d7u, ImmutableString("textureProjLod(00R20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000022au, ImmutableString("textureProjLod(00X20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000022bu, ImmutableString("textureProjLod(00X20B00B").mangledNameHash());
     ASSERT_EQ(0x000001aau, ImmutableString("textureProjLod(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x000001dbu, ImmutableString("textureProjLod(00R30B00B").mangledNameHash());
     ASSERT_EQ(0x0000002cu, ImmutableString("textureProjLod(00X30B00B").mangledNameHash());
     ASSERT_EQ(0x000000e3u, ImmutableString("textureProjLod(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x000000b9u, ImmutableString("textureProjLod(00S30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000305u, ImmutableString("textureProjLod(00Y30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000228u, ImmutableString("textureProjLod(00d30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000306u, ImmutableString("textureProjLod(00Y30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000229u, ImmutableString("textureProjLod(00d30B00B").mangledNameHash());
     ASSERT_EQ(0x0000005au, ImmutableString("texelFetch(00I10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000334u, ImmutableString("texelFetch(00R10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000289u, ImmutableString("texelFetch(00X10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000393u, ImmutableString("texelFetch(00J20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000024du, ImmutableString("texelFetch(00S20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000335u, ImmutableString("texelFetch(00R10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000028au, ImmutableString("texelFetch(00X10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000394u, ImmutableString("texelFetch(00J20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000024eu, ImmutableString("texelFetch(00S20D00D").mangledNameHash());
     ASSERT_EQ(0x0000006bu, ImmutableString("texelFetch(00Y20D00D").mangledNameHash());
     ASSERT_EQ(0x00000198u, ImmutableString("texelFetch(00L20D00D").mangledNameHash());
     ASSERT_EQ(0x00000147u, ImmutableString("texelFetch(00U20D00D").mangledNameHash());
     ASSERT_EQ(0x00000038u, ImmutableString("texelFetch(00a20D00D").mangledNameHash());
     ASSERT_EQ(0x00000021u, ImmutableString("textureGrad(00I10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000033cu, ImmutableString("textureGrad(00R10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000247u, ImmutableString("textureGrad(00X10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000033du, ImmutableString("textureGrad(00R10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000248u, ImmutableString("textureGrad(00X10B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001b4u, ImmutableString("textureGrad(00J20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000109u, ImmutableString("textureGrad(00S20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000112u, ImmutableString("textureGrad(00Y20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000024bu, ImmutableString("textureGrad(00K20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000035eu, ImmutableString("textureGrad(00T20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000024cu, ImmutableString("textureGrad(00K20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000035fu, ImmutableString("textureGrad(00T20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000156u, ImmutableString("textureGrad(00Z20B20B20B").mangledNameHash());
     ASSERT_EQ(0x0000006du, ImmutableString("textureGrad(00d20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000242u, ImmutableString("textureGrad(00e30B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000033bu, ImmutableString("textureGrad(00L20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000243u, ImmutableString("textureGrad(00e30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000033cu, ImmutableString("textureGrad(00L20B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000019du, ImmutableString("textureGrad(00U20B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001a5u, ImmutableString("textureGrad(00a20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000237u, ImmutableString("textureGrad(00f30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000033du, ImmutableString("textureProjGrad(00I20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000330u, ImmutableString("textureProjGrad(00R20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000238u, ImmutableString("textureGrad(00f30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000033eu, ImmutableString("textureProjGrad(00I20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000331u, ImmutableString("textureProjGrad(00R20B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001c2u, ImmutableString("textureProjGrad(00X20B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000000cu, ImmutableString("textureProjGrad(00I30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000000f8u, ImmutableString("textureProjGrad(00R30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000003a2u, ImmutableString("textureProjGrad(00X30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000003a3u, ImmutableString("textureProjGrad(00X30B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000013du, ImmutableString("textureProjGrad(00J30B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000051u, ImmutableString("textureProjGrad(00S30B20B20B").mangledNameHash());
     ASSERT_EQ(0x0000001bu, ImmutableString("textureProjGrad(00Y30B20B20B").mangledNameHash());
     ASSERT_EQ(0x000001b5u, ImmutableString("textureProjGrad(00d30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001dcu, ImmutableString("textureSize(00P").mangledNameHash());
-    ASSERT_EQ(0x000002aeu, ImmutableString("textureSize(00V").mangledNameHash());
-    ASSERT_EQ(0x0000020eu, ImmutableString("textureSize(00b").mangledNameHash());
-    ASSERT_EQ(0x00000225u, ImmutableString("textureSize(00Q").mangledNameHash());
-    ASSERT_EQ(0x00000229u, ImmutableString("textureSize(00W").mangledNameHash());
-    ASSERT_EQ(0x0000020du, ImmutableString("textureSize(00c").mangledNameHash());
+    ASSERT_EQ(0x000002afu, ImmutableString("textureSize(00V").mangledNameHash());
+    ASSERT_EQ(0x0000020fu, ImmutableString("textureSize(00b").mangledNameHash());
+    ASSERT_EQ(0x00000226u, ImmutableString("textureSize(00Q").mangledNameHash());
+    ASSERT_EQ(0x0000022au, ImmutableString("textureSize(00W").mangledNameHash());
+    ASSERT_EQ(0x0000020eu, ImmutableString("textureSize(00c").mangledNameHash());
     ASSERT_EQ(0x00000096u, ImmutableString("texelFetch(00P10D00D").mangledNameHash());
     ASSERT_EQ(0x0000012fu, ImmutableString("texelFetch(00V10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000028du, ImmutableString("texelFetch(00b10D00D").mangledNameHash());
-    ASSERT_EQ(0x000002c5u, ImmutableString("texelFetch(00Q20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000028eu, ImmutableString("texelFetch(00b10D00D").mangledNameHash());
+    ASSERT_EQ(0x000002c6u, ImmutableString("texelFetch(00Q20D00D").mangledNameHash());
     ASSERT_EQ(0x00000106u, ImmutableString("texelFetch(00W20D00D").mangledNameHash());
     ASSERT_EQ(0x000001d2u, ImmutableString("texelFetch(00c20D00D").mangledNameHash());
     ASSERT_EQ(0x000000b1u, ImmutableString("texture(00I10B00B").mangledNameHash());
@@ -647,9 +647,9 @@
     ASSERT_EQ(0x00000186u, ImmutableString("texture(00Z20B00B").mangledNameHash());
     ASSERT_EQ(0x000001f4u, ImmutableString("texture(00L20B00B").mangledNameHash());
     ASSERT_EQ(0x00000182u, ImmutableString("texture(00U20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000038eu, ImmutableString("texture(00a20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000386u, ImmutableString("textureProj(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000285u, ImmutableString("textureProj(00R20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000038fu, ImmutableString("texture(00a20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000387u, ImmutableString("textureProj(00I20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000286u, ImmutableString("textureProj(00R20B00B").mangledNameHash());
     ASSERT_EQ(0x000001e5u, ImmutableString("textureProj(00X20B00B").mangledNameHash());
     ASSERT_EQ(0x000000aau, ImmutableString("textureProj(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000000u, ImmutableString("textureProj(00R30B00B").mangledNameHash());
@@ -657,244 +657,244 @@
     ASSERT_EQ(0x00000030u, ImmutableString("textureProj(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x00000111u, ImmutableString("textureProj(00S30B00B").mangledNameHash());
     ASSERT_EQ(0x000001b0u, ImmutableString("textureProj(00Y30B00B").mangledNameHash());
-    ASSERT_EQ(0x000002abu, ImmutableString("texture(00d20B00B").mangledNameHash());
+    ASSERT_EQ(0x000002acu, ImmutableString("texture(00d20B00B").mangledNameHash());
     ASSERT_EQ(0x00000160u, ImmutableString("texture(00e30B00B").mangledNameHash());
-    ASSERT_EQ(0x000002f7u, ImmutableString("textureProj(00d30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000038fu, ImmutableString("texture(00M10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000394u, ImmutableString("textureProj(00M20B00B").mangledNameHash());
+    ASSERT_EQ(0x000002f8u, ImmutableString("textureProj(00d30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000390u, ImmutableString("texture(00M10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000395u, ImmutableString("textureProj(00M20B00B").mangledNameHash());
     ASSERT_EQ(0x000000afu, ImmutableString("textureProj(00M30B00B").mangledNameHash());
     ASSERT_EQ(0x00000001u, ImmutableString("texture(00N10B00B").mangledNameHash());
-    ASSERT_EQ(0x000002f4u, ImmutableString("textureProj(00N20B00B").mangledNameHash());
+    ASSERT_EQ(0x000002f5u, ImmutableString("textureProj(00N20B00B").mangledNameHash());
     ASSERT_EQ(0x000000a4u, ImmutableString("textureProj(00N30B00B").mangledNameHash());
     ASSERT_EQ(0x000000a8u, ImmutableString("textureOffset(00I10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000262u, ImmutableString("textureOffset(00R10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000266u, ImmutableString("textureOffset(00X10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000392u, ImmutableString("textureOffset(00J20B20D").mangledNameHash());
-    ASSERT_EQ(0x00000380u, ImmutableString("textureOffset(00S20B20D").mangledNameHash());
-    ASSERT_EQ(0x0000029fu, ImmutableString("textureOffset(00Y20B20D").mangledNameHash());
+    ASSERT_EQ(0x00000263u, ImmutableString("textureOffset(00R10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000267u, ImmutableString("textureOffset(00X10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000393u, ImmutableString("textureOffset(00J20B20D").mangledNameHash());
+    ASSERT_EQ(0x00000381u, ImmutableString("textureOffset(00S20B20D").mangledNameHash());
+    ASSERT_EQ(0x000002a0u, ImmutableString("textureOffset(00Y20B20D").mangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("textureOffset(00d20B10D").mangledNameHash());
     ASSERT_EQ(0x000000c8u, ImmutableString("textureOffset(00L20B10D").mangledNameHash());
     ASSERT_EQ(0x0000006fu, ImmutableString("textureOffset(00U20B10D").mangledNameHash());
     ASSERT_EQ(0x000000e9u, ImmutableString("textureOffset(00a20B10D").mangledNameHash());
     ASSERT_EQ(0x000000dau, ImmutableString("textureProjOffset(00I20B10D").mangledNameHash());
     ASSERT_EQ(0x000000a1u, ImmutableString("textureProjOffset(00R20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000381u, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
+    ASSERT_EQ(0x00000382u, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
     ASSERT_EQ(0x0000016bu, ImmutableString("textureProjOffset(00I30B10D").mangledNameHash());
     ASSERT_EQ(0x0000006eu, ImmutableString("textureProjOffset(00R30B10D").mangledNameHash());
-    ASSERT_EQ(0x000002d8u, ImmutableString("textureProjOffset(00X30B10D").mangledNameHash());
-    ASSERT_EQ(0x00000360u, ImmutableString("textureProjOffset(00J30B20D").mangledNameHash());
+    ASSERT_EQ(0x000002d9u, ImmutableString("textureProjOffset(00X30B10D").mangledNameHash());
+    ASSERT_EQ(0x00000361u, ImmutableString("textureProjOffset(00J30B20D").mangledNameHash());
     ASSERT_EQ(0x000000ceu, ImmutableString("textureProjOffset(00S30B20D").mangledNameHash());
-    ASSERT_EQ(0x00000321u, ImmutableString("textureProjOffset(00Y30B20D").mangledNameHash());
-    ASSERT_EQ(0x00000364u, ImmutableString("textureProjOffset(00d30B10D").mangledNameHash());
+    ASSERT_EQ(0x00000322u, ImmutableString("textureProjOffset(00Y30B20D").mangledNameHash());
+    ASSERT_EQ(0x00000365u, ImmutableString("textureProjOffset(00d30B10D").mangledNameHash());
     ASSERT_EQ(0x0000006au, ImmutableString("textureLodOffset(00I10B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000099u, ImmutableString("textureLodOffset(00R10B00B10D").mangledNameHash());
     ASSERT_EQ(0x000000c6u, ImmutableString("textureLodOffset(00X10B00B10D").mangledNameHash());
-    ASSERT_EQ(0x0000023fu, ImmutableString("textureLodOffset(00J20B00B20D").mangledNameHash());
+    ASSERT_EQ(0x00000240u, ImmutableString("textureLodOffset(00J20B00B20D").mangledNameHash());
     ASSERT_EQ(0x0000005eu, ImmutableString("textureLodOffset(00S20B00B20D").mangledNameHash());
     ASSERT_EQ(0x00000161u, ImmutableString("textureLodOffset(00Y20B00B20D").mangledNameHash());
     ASSERT_EQ(0x000001bfu, ImmutableString("textureLodOffset(00d20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x0000034eu, ImmutableString("textureLodOffset(00L20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000284u, ImmutableString("textureLodOffset(00U20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x0000034fu, ImmutableString("textureLodOffset(00L20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000285u, ImmutableString("textureLodOffset(00U20B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000036u, ImmutableString("textureLodOffset(00a20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x0000032eu, ImmutableString("textureProjLodOffset(00I20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x0000032fu, ImmutableString("textureProjLodOffset(00I20B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000134u, ImmutableString("textureProjLodOffset(00R20B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000017au, ImmutableString("textureProjLodOffset(00X20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000336u, ImmutableString("textureProjLodOffset(00I30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000337u, ImmutableString("textureProjLodOffset(00I30B00B10D").mangledNameHash());
     ASSERT_EQ(0x000001deu, ImmutableString("textureProjLodOffset(00R30B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000354u, ImmutableString("textureProjLodOffset(00X30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000355u, ImmutableString("textureProjLodOffset(00X30B00B10D").mangledNameHash());
     ASSERT_EQ(0x000001c9u, ImmutableString("textureProjLodOffset(00J30B00B20D").mangledNameHash());
     ASSERT_EQ(0x0000017du, ImmutableString("textureProjLodOffset(00S30B00B20D").mangledNameHash());
     ASSERT_EQ(0x000001bcu, ImmutableString("textureProjLodOffset(00Y30B00B20D").mangledNameHash());
-    ASSERT_EQ(0x00000333u, ImmutableString("textureProjLodOffset(00d30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000334u, ImmutableString("textureProjLodOffset(00d30B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000012du, ImmutableString("texelFetchOffset(00I10D00D10D").mangledNameHash());
     ASSERT_EQ(0x000000c0u, ImmutableString("texelFetchOffset(00R10D00D10D").mangledNameHash());
-    ASSERT_EQ(0x000002a9u, ImmutableString("texelFetchOffset(00X10D00D10D").mangledNameHash());
-    ASSERT_EQ(0x00000205u, ImmutableString("texelFetchOffset(00J20D00D20D").mangledNameHash());
+    ASSERT_EQ(0x000002aau, ImmutableString("texelFetchOffset(00X10D00D10D").mangledNameHash());
+    ASSERT_EQ(0x00000206u, ImmutableString("texelFetchOffset(00J20D00D20D").mangledNameHash());
     ASSERT_EQ(0x0000011eu, ImmutableString("texelFetchOffset(00S20D00D20D").mangledNameHash());
     ASSERT_EQ(0x00000037u, ImmutableString("texelFetchOffset(00Y20D00D20D").mangledNameHash());
-    ASSERT_EQ(0x00000259u, ImmutableString("texelFetchOffset(00L20D00D10D").mangledNameHash());
+    ASSERT_EQ(0x0000025au, ImmutableString("texelFetchOffset(00L20D00D10D").mangledNameHash());
     ASSERT_EQ(0x000001bbu, ImmutableString("texelFetchOffset(00U20D00D10D").mangledNameHash());
     ASSERT_EQ(0x00000125u, ImmutableString("texelFetchOffset(00a20D00D10D").mangledNameHash());
-    ASSERT_EQ(0x0000023au, ImmutableString("textureGradOffset(00I10B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000002dcu, ImmutableString("textureGradOffset(00R10B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x0000023bu, ImmutableString("textureGradOffset(00I10B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x000002ddu, ImmutableString("textureGradOffset(00R10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000083u, ImmutableString("textureGradOffset(00X10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000064u, ImmutableString("textureGradOffset(00J20B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x0000009fu, ImmutableString("textureGradOffset(00S20B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x0000022fu, ImmutableString("textureGradOffset(00Y20B20B20B20D").mangledNameHash());
+    ASSERT_EQ(0x00000230u, ImmutableString("textureGradOffset(00Y20B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x000001ddu, ImmutableString("textureGradOffset(00d20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000324u, ImmutableString("textureGradOffset(00L20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x0000024eu, ImmutableString("textureGradOffset(00U20B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000325u, ImmutableString("textureGradOffset(00L20B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x0000024fu, ImmutableString("textureGradOffset(00U20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000187u, ImmutableString("textureGradOffset(00a20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000211u, ImmutableString("textureGradOffset(00f30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x0000036eu,
+    ASSERT_EQ(0x00000212u, ImmutableString("textureGradOffset(00f30B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x0000036fu,
               ImmutableString("textureProjGradOffset(00I20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000056u,
               ImmutableString("textureProjGradOffset(00R20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000126u,
               ImmutableString("textureProjGradOffset(00X20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000264u,
+    ASSERT_EQ(0x00000265u,
               ImmutableString("textureProjGradOffset(00I30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000396u,
+    ASSERT_EQ(0x00000397u,
               ImmutableString("textureProjGradOffset(00R30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000000feu,
               ImmutableString("textureProjGradOffset(00X30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000003a0u,
+    ASSERT_EQ(0x000003a1u,
               ImmutableString("textureProjGradOffset(00J30B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x00000115u,
               ImmutableString("textureProjGradOffset(00S30B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x0000035du,
+    ASSERT_EQ(0x0000035eu,
               ImmutableString("textureProjGradOffset(00Y30B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x00000255u,
+    ASSERT_EQ(0x00000256u,
               ImmutableString("textureProjGradOffset(00d30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000000ffu, ImmutableString("textureOffset(00I10B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000241u, ImmutableString("textureOffset(00R10B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000002b2u, ImmutableString("textureOffset(00X10B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000242u, ImmutableString("textureOffset(00R10B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000002b3u, ImmutableString("textureOffset(00X10B10D00B").mangledNameHash());
     ASSERT_EQ(0x000000cau, ImmutableString("textureOffset(00J20B20D00B").mangledNameHash());
-    ASSERT_EQ(0x0000026au, ImmutableString("textureOffset(00S20B20D00B").mangledNameHash());
+    ASSERT_EQ(0x0000026bu, ImmutableString("textureOffset(00S20B20D00B").mangledNameHash());
     ASSERT_EQ(0x0000009eu, ImmutableString("textureOffset(00Y20B20D00B").mangledNameHash());
-    ASSERT_EQ(0x00000268u, ImmutableString("textureOffset(00d20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000269u, ImmutableString("textureOffset(00d20B10D00B").mangledNameHash());
     ASSERT_EQ(0x000000c5u, ImmutableString("textureOffset(00L20B10D00B").mangledNameHash());
     ASSERT_EQ(0x000001a6u, ImmutableString("textureOffset(00U20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000215u, ImmutableString("textureOffset(00a20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000216u, ImmutableString("textureOffset(00a20B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000078u, ImmutableString("textureProjOffset(00I20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x0000026du, ImmutableString("textureProjOffset(00R20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x0000026eu, ImmutableString("textureProjOffset(00R20B10D00B").mangledNameHash());
     ASSERT_EQ(0x000000fbu, ImmutableString("textureProjOffset(00X20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000345u, ImmutableString("textureProjOffset(00I30B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000388u, ImmutableString("textureProjOffset(00R30B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000398u, ImmutableString("textureProjOffset(00X30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000346u, ImmutableString("textureProjOffset(00I30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000389u, ImmutableString("textureProjOffset(00R30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000399u, ImmutableString("textureProjOffset(00X30B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000048u, ImmutableString("textureProjOffset(00J30B20D00B").mangledNameHash());
     ASSERT_EQ(0x0000002bu, ImmutableString("textureProjOffset(00S30B20D00B").mangledNameHash());
-    ASSERT_EQ(0x000002b9u, ImmutableString("textureProjOffset(00Y30B20D00B").mangledNameHash());
-    ASSERT_EQ(0x00000362u, ImmutableString("textureProjOffset(00d30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000002bau, ImmutableString("textureProjOffset(00Y30B20D00B").mangledNameHash());
+    ASSERT_EQ(0x00000363u, ImmutableString("textureProjOffset(00d30B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000087u, ImmutableString("texture(00M10B").mangledNameHash());
     ASSERT_EQ(0x000000b0u, ImmutableString("textureProj(00M20B").mangledNameHash());
-    ASSERT_EQ(0x0000030au, ImmutableString("textureProj(00M30B").mangledNameHash());
-    ASSERT_EQ(0x00000316u, ImmutableString("textureSize(00M00D").mangledNameHash());
+    ASSERT_EQ(0x0000030bu, ImmutableString("textureProj(00M30B").mangledNameHash());
+    ASSERT_EQ(0x00000317u, ImmutableString("textureSize(00M00D").mangledNameHash());
     ASSERT_EQ(0x0000009bu, ImmutableString("texelFetch(00M10D00D").mangledNameHash());
     ASSERT_EQ(0x0000011fu, ImmutableString("texture(00N10B").mangledNameHash());
-    ASSERT_EQ(0x0000034bu, ImmutableString("textureProj(00N20B").mangledNameHash());
-    ASSERT_EQ(0x00000256u, ImmutableString("textureProj(00N30B").mangledNameHash());
+    ASSERT_EQ(0x0000034cu, ImmutableString("textureProj(00N20B").mangledNameHash());
+    ASSERT_EQ(0x00000257u, ImmutableString("textureProj(00N30B").mangledNameHash());
     ASSERT_EQ(0x0000007du, ImmutableString("rgb_2_yuv(20B00H").mangledNameHash());
     ASSERT_EQ(0x000001a2u, ImmutableString("yuv_2_rgb(20B00H").mangledNameHash());
-    ASSERT_EQ(0x00000204u, ImmutableString("textureSize(00N00D").mangledNameHash());
+    ASSERT_EQ(0x00000205u, ImmutableString("textureSize(00N00D").mangledNameHash());
     ASSERT_EQ(0x0000003du, ImmutableString("texelFetch(00N10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000023cu, ImmutableString("textureGather(00I10B").mangledNameHash());
-    ASSERT_EQ(0x00000302u, ImmutableString("textureGather(00R10B").mangledNameHash());
-    ASSERT_EQ(0x00000216u, ImmutableString("textureGather(00X10B").mangledNameHash());
+    ASSERT_EQ(0x0000023du, ImmutableString("textureGather(00I10B").mangledNameHash());
+    ASSERT_EQ(0x00000303u, ImmutableString("textureGather(00R10B").mangledNameHash());
+    ASSERT_EQ(0x00000217u, ImmutableString("textureGather(00X10B").mangledNameHash());
     ASSERT_EQ(0x0000012eu, ImmutableString("textureGather(00I10B00D").mangledNameHash());
-    ASSERT_EQ(0x000002beu, ImmutableString("textureGather(00R10B00D").mangledNameHash());
+    ASSERT_EQ(0x000002bfu, ImmutableString("textureGather(00R10B00D").mangledNameHash());
     ASSERT_EQ(0x000001bau, ImmutableString("textureGather(00X10B00D").mangledNameHash());
     ASSERT_EQ(0x0000017fu, ImmutableString("textureGather(00L20B").mangledNameHash());
-    ASSERT_EQ(0x000002c1u, ImmutableString("textureGather(00U20B").mangledNameHash());
-    ASSERT_EQ(0x00000218u, ImmutableString("textureGather(00a20B").mangledNameHash());
+    ASSERT_EQ(0x000002c2u, ImmutableString("textureGather(00U20B").mangledNameHash());
+    ASSERT_EQ(0x00000219u, ImmutableString("textureGather(00a20B").mangledNameHash());
     ASSERT_EQ(0x00000114u, ImmutableString("textureGather(00L20B00D").mangledNameHash());
-    ASSERT_EQ(0x000002f2u, ImmutableString("textureGather(00U20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000039fu, ImmutableString("textureGather(00a20B00D").mangledNameHash());
+    ASSERT_EQ(0x000002f3u, ImmutableString("textureGather(00U20B00D").mangledNameHash());
+    ASSERT_EQ(0x000003a0u, ImmutableString("textureGather(00a20B00D").mangledNameHash());
     ASSERT_EQ(0x000000d3u, ImmutableString("textureGather(00K20B").mangledNameHash());
-    ASSERT_EQ(0x0000039eu, ImmutableString("textureGather(00T20B").mangledNameHash());
-    ASSERT_EQ(0x00000265u, ImmutableString("textureGather(00Z20B").mangledNameHash());
+    ASSERT_EQ(0x0000039fu, ImmutableString("textureGather(00T20B").mangledNameHash());
+    ASSERT_EQ(0x00000266u, ImmutableString("textureGather(00Z20B").mangledNameHash());
     ASSERT_EQ(0x00000014u, ImmutableString("textureGather(00K20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000034au, ImmutableString("textureGather(00T20B00D").mangledNameHash());
-    ASSERT_EQ(0x00000301u, ImmutableString("textureGather(00Z20B00D").mangledNameHash());
+    ASSERT_EQ(0x0000034bu, ImmutableString("textureGather(00T20B00D").mangledNameHash());
+    ASSERT_EQ(0x00000302u, ImmutableString("textureGather(00Z20B00D").mangledNameHash());
     ASSERT_EQ(0x00000172u, ImmutableString("textureGather(00d10B").mangledNameHash());
-    ASSERT_EQ(0x00000379u, ImmutableString("textureGather(00d10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000037au, ImmutableString("textureGather(00d10B00B").mangledNameHash());
     ASSERT_EQ(0x00000137u, ImmutableString("textureGather(00f20B").mangledNameHash());
     ASSERT_EQ(0x000001a3u, ImmutableString("textureGather(00f20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000033eu, ImmutableString("textureGather(00e20B").mangledNameHash());
+    ASSERT_EQ(0x0000033fu, ImmutableString("textureGather(00e20B").mangledNameHash());
     ASSERT_EQ(0x00000150u, ImmutableString("textureGather(00e20B00B").mangledNameHash());
     ASSERT_EQ(0x000000c4u, ImmutableString("textureGatherOffset(00I10B10D").mangledNameHash());
     ASSERT_EQ(0x0000005fu, ImmutableString("textureGatherOffset(00R10B10D").mangledNameHash());
-    ASSERT_EQ(0x000002ecu, ImmutableString("textureGatherOffset(00X10B10D").mangledNameHash());
+    ASSERT_EQ(0x000002edu, ImmutableString("textureGatherOffset(00X10B10D").mangledNameHash());
     ASSERT_EQ(0x000001b9u, ImmutableString("textureGatherOffset(00I10B10D00D").mangledNameHash());
     ASSERT_EQ(0x000001e1u, ImmutableString("textureGatherOffset(00R10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000035au, ImmutableString("textureGatherOffset(00X10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000252u, ImmutableString("textureGatherOffset(00L20B10D").mangledNameHash());
-    ASSERT_EQ(0x000002bau, ImmutableString("textureGatherOffset(00U20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000236u, ImmutableString("textureGatherOffset(00a20B10D").mangledNameHash());
+    ASSERT_EQ(0x0000035bu, ImmutableString("textureGatherOffset(00X10B10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000253u, ImmutableString("textureGatherOffset(00L20B10D").mangledNameHash());
+    ASSERT_EQ(0x000002bbu, ImmutableString("textureGatherOffset(00U20B10D").mangledNameHash());
+    ASSERT_EQ(0x00000237u, ImmutableString("textureGatherOffset(00a20B10D").mangledNameHash());
     ASSERT_EQ(0x00000022u, ImmutableString("textureGatherOffset(00L20B10D00D").mangledNameHash());
     ASSERT_EQ(0x000000e1u, ImmutableString("textureGatherOffset(00U20B10D00D").mangledNameHash());
     ASSERT_EQ(0x000000c2u, ImmutableString("textureGatherOffset(00a20B10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000021bu, ImmutableString("textureGatherOffset(00d10B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000291u, ImmutableString("textureGatherOffset(00f20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x0000021cu, ImmutableString("textureGatherOffset(00d10B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000292u, ImmutableString("textureGatherOffset(00f20B00B10D").mangledNameHash());
     ASSERT_EQ(0x000000cdu, ImmutableString("atomicCounter(00G").mangledNameHash());
-    ASSERT_EQ(0x0000034fu, ImmutableString("atomicCounterIncrement(00G").mangledNameHash());
-    ASSERT_EQ(0x00000329u, ImmutableString("atomicCounterDecrement(00G").mangledNameHash());
-    ASSERT_EQ(0x00000243u, ImmutableString("atomicAdd(00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000350u, ImmutableString("atomicCounterIncrement(00G").mangledNameHash());
+    ASSERT_EQ(0x0000032au, ImmutableString("atomicCounterDecrement(00G").mangledNameHash());
+    ASSERT_EQ(0x00000244u, ImmutableString("atomicAdd(00E00E").mangledNameHash());
     ASSERT_EQ(0x0000003eu, ImmutableString("atomicAdd(00D00D").mangledNameHash());
     ASSERT_EQ(0x0000014cu, ImmutableString("atomicMin(00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000375u, ImmutableString("atomicMin(00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000373u, ImmutableString("atomicMax(00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000200u, ImmutableString("atomicMax(00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000376u, ImmutableString("atomicMin(00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000374u, ImmutableString("atomicMax(00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000201u, ImmutableString("atomicMax(00D00D").mangledNameHash());
     ASSERT_EQ(0x000000bbu, ImmutableString("atomicAnd(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000075u, ImmutableString("atomicAnd(00D00D").mangledNameHash());
     ASSERT_EQ(0x000000adu, ImmutableString("atomicOr(00E00E").mangledNameHash());
-    ASSERT_EQ(0x000003a5u, ImmutableString("atomicOr(00D00D").mangledNameHash());
+    ASSERT_EQ(0x000003a6u, ImmutableString("atomicOr(00D00D").mangledNameHash());
     ASSERT_EQ(0x000000a0u, ImmutableString("atomicXor(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000068u, ImmutableString("atomicXor(00D00D").mangledNameHash());
     ASSERT_EQ(0x000000a9u, ImmutableString("atomicExchange(00E00E").mangledNameHash());
     ASSERT_EQ(0x000001e0u, ImmutableString("atomicExchange(00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000320u, ImmutableString("atomicCompSwap(00E00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000321u, ImmutableString("atomicCompSwap(00E00E00E").mangledNameHash());
     ASSERT_EQ(0x000001f8u, ImmutableString("atomicCompSwap(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000199u, ImmutableString("imageSize(00y").mangledNameHash());
     ASSERT_EQ(0x0000019bu, ImmutableString("imageSize(00z").mangledNameHash());
-    ASSERT_EQ(0x0000028bu, ImmutableString("imageSize(01A").mangledNameHash());
-    ASSERT_EQ(0x00000221u, ImmutableString("imageSize(01B").mangledNameHash());
-    ASSERT_EQ(0x000002d9u, ImmutableString("imageSize(01C").mangledNameHash());
-    ASSERT_EQ(0x00000297u, ImmutableString("imageSize(01D").mangledNameHash());
-    ASSERT_EQ(0x00000287u, ImmutableString("imageSize(01E").mangledNameHash());
-    ASSERT_EQ(0x0000028eu, ImmutableString("imageSize(01F").mangledNameHash());
-    ASSERT_EQ(0x000002ddu, ImmutableString("imageSize(01G").mangledNameHash());
-    ASSERT_EQ(0x000002d2u, ImmutableString("imageSize(01H").mangledNameHash());
-    ASSERT_EQ(0x000002d3u, ImmutableString("imageSize(01I").mangledNameHash());
-    ASSERT_EQ(0x000002d1u, ImmutableString("imageSize(01J").mangledNameHash());
-    ASSERT_EQ(0x00000260u, ImmutableString("imageLoad(00y10D").mangledNameHash());
+    ASSERT_EQ(0x0000028cu, ImmutableString("imageSize(01A").mangledNameHash());
+    ASSERT_EQ(0x00000222u, ImmutableString("imageSize(01B").mangledNameHash());
+    ASSERT_EQ(0x000002dau, ImmutableString("imageSize(01C").mangledNameHash());
+    ASSERT_EQ(0x00000298u, ImmutableString("imageSize(01D").mangledNameHash());
+    ASSERT_EQ(0x00000288u, ImmutableString("imageSize(01E").mangledNameHash());
+    ASSERT_EQ(0x0000028fu, ImmutableString("imageSize(01F").mangledNameHash());
+    ASSERT_EQ(0x000002deu, ImmutableString("imageSize(01G").mangledNameHash());
+    ASSERT_EQ(0x000002d3u, ImmutableString("imageSize(01H").mangledNameHash());
+    ASSERT_EQ(0x000002d4u, ImmutableString("imageSize(01I").mangledNameHash());
+    ASSERT_EQ(0x000002d2u, ImmutableString("imageSize(01J").mangledNameHash());
+    ASSERT_EQ(0x00000261u, ImmutableString("imageLoad(00y10D").mangledNameHash());
     ASSERT_EQ(0x000001f0u, ImmutableString("imageLoad(00z10D").mangledNameHash());
     ASSERT_EQ(0x00000057u, ImmutableString("imageLoad(01A10D").mangledNameHash());
-    ASSERT_EQ(0x000002f6u, ImmutableString("imageLoad(01B20D").mangledNameHash());
-    ASSERT_EQ(0x000002d0u, ImmutableString("imageLoad(01C20D").mangledNameHash());
-    ASSERT_EQ(0x00000353u, ImmutableString("imageLoad(01D20D").mangledNameHash());
-    ASSERT_EQ(0x000002f0u, ImmutableString("imageLoad(01E20D").mangledNameHash());
+    ASSERT_EQ(0x000002f7u, ImmutableString("imageLoad(01B20D").mangledNameHash());
+    ASSERT_EQ(0x000002d1u, ImmutableString("imageLoad(01C20D").mangledNameHash());
+    ASSERT_EQ(0x00000354u, ImmutableString("imageLoad(01D20D").mangledNameHash());
+    ASSERT_EQ(0x000002f1u, ImmutableString("imageLoad(01E20D").mangledNameHash());
     ASSERT_EQ(0x0000003au, ImmutableString("imageLoad(01F20D").mangledNameHash());
     ASSERT_EQ(0x000001f6u, ImmutableString("imageLoad(01G20D").mangledNameHash());
     ASSERT_EQ(0x000000d2u, ImmutableString("imageLoad(01H20D").mangledNameHash());
     ASSERT_EQ(0x000000cfu, ImmutableString("imageLoad(01I20D").mangledNameHash());
-    ASSERT_EQ(0x00000208u, ImmutableString("imageLoad(01J20D").mangledNameHash());
+    ASSERT_EQ(0x00000209u, ImmutableString("imageLoad(01J20D").mangledNameHash());
     ASSERT_EQ(0x000001e2u, ImmutableString("imageStore(00y10D30B").mangledNameHash());
     ASSERT_EQ(0x000000f7u, ImmutableString("imageStore(00z10D30D").mangledNameHash());
     ASSERT_EQ(0x00000116u, ImmutableString("imageStore(01A10D30E").mangledNameHash());
     ASSERT_EQ(0x00000080u, ImmutableString("imageStore(01B20D30B").mangledNameHash());
-    ASSERT_EQ(0x000002e5u, ImmutableString("imageStore(01C20D30D").mangledNameHash());
-    ASSERT_EQ(0x00000327u, ImmutableString("imageStore(01D20D30E").mangledNameHash());
+    ASSERT_EQ(0x000002e6u, ImmutableString("imageStore(01C20D30D").mangledNameHash());
+    ASSERT_EQ(0x00000328u, ImmutableString("imageStore(01D20D30E").mangledNameHash());
     ASSERT_EQ(0x000001c1u, ImmutableString("imageStore(01E20D30B").mangledNameHash());
-    ASSERT_EQ(0x00000385u, ImmutableString("imageStore(01F20D30D").mangledNameHash());
+    ASSERT_EQ(0x00000386u, ImmutableString("imageStore(01F20D30D").mangledNameHash());
     ASSERT_EQ(0x000000d5u, ImmutableString("imageStore(01G20D30E").mangledNameHash());
-    ASSERT_EQ(0x000002c4u, ImmutableString("imageStore(01H20D30B").mangledNameHash());
+    ASSERT_EQ(0x000002c5u, ImmutableString("imageStore(01H20D30B").mangledNameHash());
     ASSERT_EQ(0x0000005cu, ImmutableString("imageStore(01I20D30D").mangledNameHash());
     ASSERT_EQ(0x0000010bu, ImmutableString("imageStore(01J20D30E").mangledNameHash());
     ASSERT_EQ(0x000001fdu, ImmutableString("memoryBarrier(").mangledNameHash());
     ASSERT_EQ(0x00000065u, ImmutableString("memoryBarrierAtomicCounter(").mangledNameHash());
-    ASSERT_EQ(0x000002bfu, ImmutableString("memoryBarrierBuffer(").mangledNameHash());
-    ASSERT_EQ(0x0000035fu, ImmutableString("memoryBarrierImage(").mangledNameHash());
+    ASSERT_EQ(0x000002c0u, ImmutableString("memoryBarrierBuffer(").mangledNameHash());
+    ASSERT_EQ(0x00000360u, ImmutableString("memoryBarrierImage(").mangledNameHash());
     ASSERT_EQ(0x00000121u, ImmutableString("barrier(").mangledNameHash());
     ASSERT_EQ(0x000001edu, ImmutableString("memoryBarrierShared(").mangledNameHash());
     ASSERT_EQ(0x00000054u, ImmutableString("groupMemoryBarrier(").mangledNameHash());
-    ASSERT_EQ(0x00000361u, ImmutableString("EmitVertex(").mangledNameHash());
+    ASSERT_EQ(0x00000362u, ImmutableString("EmitVertex(").mangledNameHash());
     ASSERT_EQ(0x00000034u, ImmutableString("EndPrimitive(").mangledNameHash());
     ASSERT_EQ(0x00000151u, ImmutableString("gl_DepthRangeParameters").mangledNameHash());
     ASSERT_EQ(0x00000084u, ImmutableString("gl_DepthRange").mangledNameHash());
-    ASSERT_EQ(0x0000030fu, ImmutableString("gl_MaxVertexAttribs").mangledNameHash());
-    ASSERT_EQ(0x00000348u, ImmutableString("gl_MaxVertexUniformVectors").mangledNameHash());
+    ASSERT_EQ(0x00000310u, ImmutableString("gl_MaxVertexAttribs").mangledNameHash());
+    ASSERT_EQ(0x00000349u, ImmutableString("gl_MaxVertexUniformVectors").mangledNameHash());
     ASSERT_EQ(0x00000043u, ImmutableString("gl_MaxVertexTextureImageUnits").mangledNameHash());
     ASSERT_EQ(0x0000014du, ImmutableString("gl_MaxCombinedTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x0000031du, ImmutableString("gl_MaxTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x000002e8u, ImmutableString("gl_MaxFragmentUniformVectors").mangledNameHash());
-    ASSERT_EQ(0x00000344u, ImmutableString("gl_MaxVaryingVectors").mangledNameHash());
+    ASSERT_EQ(0x0000031eu, ImmutableString("gl_MaxTextureImageUnits").mangledNameHash());
+    ASSERT_EQ(0x000002e9u, ImmutableString("gl_MaxFragmentUniformVectors").mangledNameHash());
+    ASSERT_EQ(0x00000345u, ImmutableString("gl_MaxVaryingVectors").mangledNameHash());
     ASSERT_EQ(0x000000e0u, ImmutableString("gl_MaxDrawBuffers").mangledNameHash());
-    ASSERT_EQ(0x00000272u, ImmutableString("gl_MaxDualSourceDrawBuffersEXT").mangledNameHash());
+    ASSERT_EQ(0x00000273u, ImmutableString("gl_MaxDualSourceDrawBuffersEXT").mangledNameHash());
     ASSERT_EQ(0x00000088u, ImmutableString("gl_MaxVertexOutputVectors").mangledNameHash());
-    ASSERT_EQ(0x00000369u, ImmutableString("gl_MaxFragmentInputVectors").mangledNameHash());
+    ASSERT_EQ(0x0000036au, ImmutableString("gl_MaxFragmentInputVectors").mangledNameHash());
     ASSERT_EQ(0x0000002eu, ImmutableString("gl_MinProgramTexelOffset").mangledNameHash());
-    ASSERT_EQ(0x00000257u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
+    ASSERT_EQ(0x00000258u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
     ASSERT_EQ(0x0000008cu, ImmutableString("gl_MaxImageUnits").mangledNameHash());
     ASSERT_EQ(0x000001d3u, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
     ASSERT_EQ(0x000000a6u, ImmutableString("gl_MaxFragmentImageUniforms").mangledNameHash());
@@ -904,53 +904,54 @@
               ImmutableString("gl_MaxCombinedShaderOutputResources").mangledNameHash());
     ASSERT_EQ(0x000000e2u, ImmutableString("gl_MaxComputeWorkGroupCount").mangledNameHash());
     ASSERT_EQ(0x00000148u, ImmutableString("gl_MaxComputeWorkGroupSize").mangledNameHash());
-    ASSERT_EQ(0x000002bdu, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
+    ASSERT_EQ(0x000002beu, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
     ASSERT_EQ(0x0000010du, ImmutableString("gl_MaxComputeTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x0000037bu, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x0000037cu, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x000000beu, ImmutableString("gl_MaxComputeAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x0000037du, ImmutableString("gl_MaxVertexAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x00000283u, ImmutableString("gl_MaxFragmentAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x0000037eu, ImmutableString("gl_MaxVertexAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x00000284u, ImmutableString("gl_MaxFragmentAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000113u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000006u, ImmutableString("gl_MaxAtomicCounterBindings").mangledNameHash());
     ASSERT_EQ(0x0000005du, ImmutableString("gl_MaxVertexAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x000001d6u, ImmutableString("gl_MaxFragmentAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x0000022bu, ImmutableString("gl_MaxCombinedAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x0000028fu, ImmutableString("gl_MaxAtomicCounterBufferSize").mangledNameHash());
-    ASSERT_EQ(0x00000244u, ImmutableString("gl_MaxGeometryInputComponents").mangledNameHash());
+    ASSERT_EQ(0x0000022cu, ImmutableString("gl_MaxCombinedAtomicCounterBuffers").mangledNameHash());
+    ASSERT_EQ(0x00000290u, ImmutableString("gl_MaxAtomicCounterBufferSize").mangledNameHash());
+    ASSERT_EQ(0x00000245u, ImmutableString("gl_MaxGeometryInputComponents").mangledNameHash());
     ASSERT_EQ(0x0000003fu, ImmutableString("gl_MaxGeometryOutputComponents").mangledNameHash());
-    ASSERT_EQ(0x0000025fu, ImmutableString("gl_MaxGeometryImageUniforms").mangledNameHash());
+    ASSERT_EQ(0x00000260u, ImmutableString("gl_MaxGeometryImageUniforms").mangledNameHash());
     ASSERT_EQ(0x00000040u, ImmutableString("gl_MaxGeometryTextureImageUnits").mangledNameHash());
     ASSERT_EQ(0x00000029u, ImmutableString("gl_MaxGeometryOutputVertices").mangledNameHash());
-    ASSERT_EQ(0x000002a2u,
+    ASSERT_EQ(0x000002a3u,
               ImmutableString("gl_MaxGeometryTotalOutputComponents").mangledNameHash());
     ASSERT_EQ(0x00000122u, ImmutableString("gl_MaxGeometryUniformComponents").mangledNameHash());
     ASSERT_EQ(0x000001e3u, ImmutableString("gl_MaxGeometryAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x000000fdu, ImmutableString("gl_MaxGeometryAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x000000a2u, ImmutableString("gl_FragCoord").mangledNameHash());
-    ASSERT_EQ(0x000002e2u, ImmutableString("gl_FrontFacing").mangledNameHash());
+    ASSERT_EQ(0x000002e3u, ImmutableString("gl_FrontFacing").mangledNameHash());
     ASSERT_EQ(0x00000118u, ImmutableString("gl_PointCoord").mangledNameHash());
     ASSERT_EQ(0x00000076u, ImmutableString("gl_FragColor").mangledNameHash());
-    ASSERT_EQ(0x000002f5u, ImmutableString("gl_FragData").mangledNameHash());
+    ASSERT_EQ(0x000002f6u, ImmutableString("gl_FragData").mangledNameHash());
     ASSERT_EQ(0x00000176u, ImmutableString("gl_FragDepth").mangledNameHash());
-    ASSERT_EQ(0x000002e3u, ImmutableString("gl_SecondaryFragColorEXT").mangledNameHash());
+    ASSERT_EQ(0x00000200u, ImmutableString("gl_HelperInvocation").mangledNameHash());
+    ASSERT_EQ(0x000002e4u, ImmutableString("gl_SecondaryFragColorEXT").mangledNameHash());
     ASSERT_EQ(0x000001cbu, ImmutableString("gl_SecondaryFragDataEXT").mangledNameHash());
     ASSERT_EQ(0x00000169u, ImmutableString("gl_FragDepthEXT").mangledNameHash());
     ASSERT_EQ(0x0000014au, ImmutableString("gl_LastFragData").mangledNameHash());
     ASSERT_EQ(0x00000163u, ImmutableString("gl_LastFragColor").mangledNameHash());
-    ASSERT_EQ(0x00000300u, ImmutableString("gl_LastFragColorARM").mangledNameHash());
+    ASSERT_EQ(0x00000301u, ImmutableString("gl_LastFragColorARM").mangledNameHash());
     ASSERT_EQ(0x00000003u, ImmutableString("gl_PrimitiveID").mangledNameHash());
     ASSERT_EQ(0x0000000eu, ImmutableString("gl_Layer").mangledNameHash());
-    ASSERT_EQ(0x0000031eu, ImmutableString("gl_Position").mangledNameHash());
-    ASSERT_EQ(0x00000374u, ImmutableString("gl_PointSize").mangledNameHash());
+    ASSERT_EQ(0x0000031fu, ImmutableString("gl_Position").mangledNameHash());
+    ASSERT_EQ(0x00000375u, ImmutableString("gl_PointSize").mangledNameHash());
     ASSERT_EQ(0x000001d1u, ImmutableString("gl_InstanceID").mangledNameHash());
-    ASSERT_EQ(0x00000308u, ImmutableString("gl_VertexID").mangledNameHash());
-    ASSERT_EQ(0x000003a4u, ImmutableString("gl_DrawID").mangledNameHash());
-    ASSERT_EQ(0x00000296u, ImmutableString("gl_BaseVertex").mangledNameHash());
-    ASSERT_EQ(0x00000310u, ImmutableString("gl_BaseInstance").mangledNameHash());
+    ASSERT_EQ(0x00000309u, ImmutableString("gl_VertexID").mangledNameHash());
+    ASSERT_EQ(0x000003a5u, ImmutableString("gl_DrawID").mangledNameHash());
+    ASSERT_EQ(0x00000297u, ImmutableString("gl_BaseVertex").mangledNameHash());
+    ASSERT_EQ(0x00000311u, ImmutableString("gl_BaseInstance").mangledNameHash());
     ASSERT_EQ(0x0000000au, ImmutableString("angle_BaseVertex").mangledNameHash());
-    ASSERT_EQ(0x0000031bu, ImmutableString("angle_BaseInstance").mangledNameHash());
-    ASSERT_EQ(0x000002b7u, ImmutableString("gl_NumWorkGroups").mangledNameHash());
-    ASSERT_EQ(0x00000209u, ImmutableString("gl_WorkGroupSize").mangledNameHash());
+    ASSERT_EQ(0x0000031cu, ImmutableString("angle_BaseInstance").mangledNameHash());
+    ASSERT_EQ(0x000002b8u, ImmutableString("gl_NumWorkGroups").mangledNameHash());
+    ASSERT_EQ(0x0000020au, ImmutableString("gl_WorkGroupSize").mangledNameHash());
     ASSERT_EQ(0x000001d7u, ImmutableString("gl_WorkGroupID").mangledNameHash());
     ASSERT_EQ(0x0000016fu, ImmutableString("gl_LocalInvocationID").mangledNameHash());
     ASSERT_EQ(0x000001ebu, ImmutableString("gl_GlobalInvocationID").mangledNameHash());
@@ -959,7 +960,7 @@
     ASSERT_EQ(0x00000142u, ImmutableString("gl_InvocationID").mangledNameHash());
     ASSERT_EQ(0x000001feu, ImmutableString("gl_PerVertex").mangledNameHash());
     ASSERT_EQ(0x000001c6u, ImmutableString("gl_in").mangledNameHash());
-    ASSERT_EQ(0x00000201u, ImmutableString("gl_ViewID_OVR").mangledNameHash());
+    ASSERT_EQ(0x00000202u, ImmutableString("gl_ViewID_OVR").mangledNameHash());
     ASSERT_EQ(0x0000001cu, ImmutableString("radians").unmangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("degrees").unmangledNameHash());
     ASSERT_EQ(0x0000007du, ImmutableString("sin").unmangledNameHash());
diff --git a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_autogen.cpp b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
index 0790030..3b7ba24 100644
--- a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
@@ -20,65 +20,65 @@
     ASSERT_EQ(0x000000cau, ImmutableString("radians(10B").mangledNameHash());
     ASSERT_EQ(0x000002c8u, ImmutableString("radians(20B").mangledNameHash());
     ASSERT_EQ(0x00000222u, ImmutableString("radians(30B").mangledNameHash());
-    ASSERT_EQ(0x00000765u, ImmutableString("degrees(00B").mangledNameHash());
-    ASSERT_EQ(0x00000812u, ImmutableString("degrees(10B").mangledNameHash());
+    ASSERT_EQ(0x00000766u, ImmutableString("degrees(00B").mangledNameHash());
+    ASSERT_EQ(0x00000813u, ImmutableString("degrees(10B").mangledNameHash());
     ASSERT_EQ(0x00000039u, ImmutableString("degrees(20B").mangledNameHash());
     ASSERT_EQ(0x000000d9u, ImmutableString("degrees(30B").mangledNameHash());
-    ASSERT_EQ(0x00000623u, ImmutableString("sin(00B").mangledNameHash());
-    ASSERT_EQ(0x00000578u, ImmutableString("sin(10B").mangledNameHash());
-    ASSERT_EQ(0x000007cau, ImmutableString("sin(20B").mangledNameHash());
+    ASSERT_EQ(0x00000624u, ImmutableString("sin(00B").mangledNameHash());
+    ASSERT_EQ(0x00000579u, ImmutableString("sin(10B").mangledNameHash());
+    ASSERT_EQ(0x000007cbu, ImmutableString("sin(20B").mangledNameHash());
     ASSERT_EQ(0x000000a6u, ImmutableString("sin(30B").mangledNameHash());
     ASSERT_EQ(0x00000141u, ImmutableString("cos(00B").mangledNameHash());
     ASSERT_EQ(0x000001eeu, ImmutableString("cos(10B").mangledNameHash());
-    ASSERT_EQ(0x00000850u, ImmutableString("cos(20B").mangledNameHash());
+    ASSERT_EQ(0x00000851u, ImmutableString("cos(20B").mangledNameHash());
     ASSERT_EQ(0x0000009eu, ImmutableString("cos(30B").mangledNameHash());
-    ASSERT_EQ(0x00000783u, ImmutableString("tan(00B").mangledNameHash());
-    ASSERT_EQ(0x00000823u, ImmutableString("tan(10B").mangledNameHash());
+    ASSERT_EQ(0x00000784u, ImmutableString("tan(00B").mangledNameHash());
+    ASSERT_EQ(0x00000824u, ImmutableString("tan(10B").mangledNameHash());
     ASSERT_EQ(0x00000438u, ImmutableString("tan(20B").mangledNameHash());
-    ASSERT_EQ(0x000006ecu, ImmutableString("tan(30B").mangledNameHash());
+    ASSERT_EQ(0x000006edu, ImmutableString("tan(30B").mangledNameHash());
     ASSERT_EQ(0x00000157u, ImmutableString("asin(00B").mangledNameHash());
     ASSERT_EQ(0x0000020bu, ImmutableString("asin(10B").mangledNameHash());
-    ASSERT_EQ(0x00000676u, ImmutableString("asin(20B").mangledNameHash());
-    ASSERT_EQ(0x0000070fu, ImmutableString("asin(30B").mangledNameHash());
+    ASSERT_EQ(0x00000677u, ImmutableString("asin(20B").mangledNameHash());
+    ASSERT_EQ(0x00000710u, ImmutableString("asin(30B").mangledNameHash());
     ASSERT_EQ(0x0000026cu, ImmutableString("acos(00B").mangledNameHash());
     ASSERT_EQ(0x000001b4u, ImmutableString("acos(10B").mangledNameHash());
-    ASSERT_EQ(0x000005beu, ImmutableString("acos(20B").mangledNameHash());
+    ASSERT_EQ(0x000005bfu, ImmutableString("acos(20B").mangledNameHash());
     ASSERT_EQ(0x00000520u, ImmutableString("acos(30B").mangledNameHash());
-    ASSERT_EQ(0x00000776u, ImmutableString("atan(00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000777u, ImmutableString("atan(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000026u, ImmutableString("atan(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000055cu, ImmutableString("atan(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000506u, ImmutableString("atan(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000011bu, ImmutableString("atan(00B").mangledNameHash());
-    ASSERT_EQ(0x000006a6u, ImmutableString("atan(10B").mangledNameHash());
+    ASSERT_EQ(0x000006a7u, ImmutableString("atan(10B").mangledNameHash());
     ASSERT_EQ(0x00000280u, ImmutableString("atan(20B").mangledNameHash());
     ASSERT_EQ(0x000001d3u, ImmutableString("atan(30B").mangledNameHash());
     ASSERT_EQ(0x0000020cu, ImmutableString("sinh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000814u, ImmutableString("sinh(10B").mangledNameHash());
+    ASSERT_EQ(0x00000815u, ImmutableString("sinh(10B").mangledNameHash());
     ASSERT_EQ(0x00000345u, ImmutableString("sinh(20B").mangledNameHash());
     ASSERT_EQ(0x000002b9u, ImmutableString("sinh(30B").mangledNameHash());
-    ASSERT_EQ(0x000005c6u, ImmutableString("cosh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000803u, ImmutableString("cosh(10B").mangledNameHash());
+    ASSERT_EQ(0x000005c7u, ImmutableString("cosh(00B").mangledNameHash());
+    ASSERT_EQ(0x00000804u, ImmutableString("cosh(10B").mangledNameHash());
     ASSERT_EQ(0x0000005fu, ImmutableString("cosh(20B").mangledNameHash());
-    ASSERT_EQ(0x000005aau, ImmutableString("cosh(30B").mangledNameHash());
-    ASSERT_EQ(0x00000693u, ImmutableString("tanh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000727u, ImmutableString("tanh(10B").mangledNameHash());
-    ASSERT_EQ(0x000007c8u, ImmutableString("tanh(20B").mangledNameHash());
+    ASSERT_EQ(0x000005abu, ImmutableString("cosh(30B").mangledNameHash());
+    ASSERT_EQ(0x00000694u, ImmutableString("tanh(00B").mangledNameHash());
+    ASSERT_EQ(0x00000728u, ImmutableString("tanh(10B").mangledNameHash());
+    ASSERT_EQ(0x000007c9u, ImmutableString("tanh(20B").mangledNameHash());
     ASSERT_EQ(0x00000009u, ImmutableString("tanh(30B").mangledNameHash());
-    ASSERT_EQ(0x000007bcu, ImmutableString("asinh(00B").mangledNameHash());
-    ASSERT_EQ(0x00000853u, ImmutableString("asinh(10B").mangledNameHash());
+    ASSERT_EQ(0x000007bdu, ImmutableString("asinh(00B").mangledNameHash());
+    ASSERT_EQ(0x00000854u, ImmutableString("asinh(10B").mangledNameHash());
     ASSERT_EQ(0x000002bcu, ImmutableString("asinh(20B").mangledNameHash());
     ASSERT_EQ(0x0000034cu, ImmutableString("asinh(30B").mangledNameHash());
     ASSERT_EQ(0x000000e2u, ImmutableString("acosh(00B").mangledNameHash());
-    ASSERT_EQ(0x000006c7u, ImmutableString("acosh(10B").mangledNameHash());
+    ASSERT_EQ(0x000006c8u, ImmutableString("acosh(10B").mangledNameHash());
     ASSERT_EQ(0x00000243u, ImmutableString("acosh(20B").mangledNameHash());
     ASSERT_EQ(0x00000198u, ImmutableString("acosh(30B").mangledNameHash());
     ASSERT_EQ(0x00000061u, ImmutableString("atanh(00B").mangledNameHash());
     ASSERT_EQ(0x00000244u, ImmutableString("atanh(10B").mangledNameHash());
-    ASSERT_EQ(0x000005e7u, ImmutableString("atanh(20B").mangledNameHash());
+    ASSERT_EQ(0x000005e8u, ImmutableString("atanh(20B").mangledNameHash());
     ASSERT_EQ(0x00000538u, ImmutableString("atanh(30B").mangledNameHash());
     ASSERT_EQ(0x00000533u, ImmutableString("pow(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000288u, ImmutableString("pow(10B10B").mangledNameHash());
-    ASSERT_EQ(0x000005ffu, ImmutableString("pow(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000600u, ImmutableString("pow(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000350u, ImmutableString("pow(30B30B").mangledNameHash());
     ASSERT_EQ(0x000003dcu, ImmutableString("exp(00B").mangledNameHash());
     ASSERT_EQ(0x0000047fu, ImmutableString("exp(10B").mangledNameHash());
@@ -88,13 +88,13 @@
     ASSERT_EQ(0x000000e3u, ImmutableString("log(10B").mangledNameHash());
     ASSERT_EQ(0x000002d9u, ImmutableString("log(20B").mangledNameHash());
     ASSERT_EQ(0x000004b6u, ImmutableString("log(30B").mangledNameHash());
-    ASSERT_EQ(0x0000065bu, ImmutableString("exp2(00B").mangledNameHash());
-    ASSERT_EQ(0x000006efu, ImmutableString("exp2(10B").mangledNameHash());
+    ASSERT_EQ(0x0000065cu, ImmutableString("exp2(00B").mangledNameHash());
+    ASSERT_EQ(0x000006f0u, ImmutableString("exp2(10B").mangledNameHash());
     ASSERT_EQ(0x00000510u, ImmutableString("exp2(20B").mangledNameHash());
-    ASSERT_EQ(0x000005a3u, ImmutableString("exp2(30B").mangledNameHash());
-    ASSERT_EQ(0x00000726u, ImmutableString("log2(00B").mangledNameHash());
-    ASSERT_EQ(0x000006b2u, ImmutableString("log2(10B").mangledNameHash());
-    ASSERT_EQ(0x0000060au, ImmutableString("log2(20B").mangledNameHash());
+    ASSERT_EQ(0x000005a4u, ImmutableString("exp2(30B").mangledNameHash());
+    ASSERT_EQ(0x00000727u, ImmutableString("log2(00B").mangledNameHash());
+    ASSERT_EQ(0x000006b3u, ImmutableString("log2(10B").mangledNameHash());
+    ASSERT_EQ(0x0000060bu, ImmutableString("log2(20B").mangledNameHash());
     ASSERT_EQ(0x00000321u, ImmutableString("log2(30B").mangledNameHash());
     ASSERT_EQ(0x00000332u, ImmutableString("sqrt(00B").mangledNameHash());
     ASSERT_EQ(0x0000029fu, ImmutableString("sqrt(10B").mangledNameHash());
@@ -105,74 +105,74 @@
     ASSERT_EQ(0x00000484u, ImmutableString("sqrt(20C").mangledNameHash());
     ASSERT_EQ(0x000003d9u, ImmutableString("sqrt(30C").mangledNameHash());
     ASSERT_EQ(0x00000042u, ImmutableString("inversesqrt(00B").mangledNameHash());
-    ASSERT_EQ(0x000007f2u, ImmutableString("inversesqrt(10B").mangledNameHash());
+    ASSERT_EQ(0x000007f3u, ImmutableString("inversesqrt(10B").mangledNameHash());
     ASSERT_EQ(0x0000015fu, ImmutableString("inversesqrt(20B").mangledNameHash());
     ASSERT_EQ(0x000000dau, ImmutableString("inversesqrt(30B").mangledNameHash());
     ASSERT_EQ(0x00000041u, ImmutableString("inversesqrt(00C").mangledNameHash());
-    ASSERT_EQ(0x000007f3u, ImmutableString("inversesqrt(10C").mangledNameHash());
+    ASSERT_EQ(0x000007f4u, ImmutableString("inversesqrt(10C").mangledNameHash());
     ASSERT_EQ(0x0000015eu, ImmutableString("inversesqrt(20C").mangledNameHash());
     ASSERT_EQ(0x000000dbu, ImmutableString("inversesqrt(30C").mangledNameHash());
     ASSERT_EQ(0x00000382u, ImmutableString("abs(00B").mangledNameHash());
     ASSERT_EQ(0x000002f3u, ImmutableString("abs(10B").mangledNameHash());
     ASSERT_EQ(0x0000025fu, ImmutableString("abs(20B").mangledNameHash());
-    ASSERT_EQ(0x000005f2u, ImmutableString("abs(30B").mangledNameHash());
+    ASSERT_EQ(0x000005f3u, ImmutableString("abs(30B").mangledNameHash());
     ASSERT_EQ(0x00000380u, ImmutableString("abs(00D").mangledNameHash());
     ASSERT_EQ(0x000002f2u, ImmutableString("abs(10D").mangledNameHash());
     ASSERT_EQ(0x0000025du, ImmutableString("abs(20D").mangledNameHash());
-    ASSERT_EQ(0x000007f4u, ImmutableString("abs(30D").mangledNameHash());
+    ASSERT_EQ(0x000007f5u, ImmutableString("abs(30D").mangledNameHash());
     ASSERT_EQ(0x00000381u, ImmutableString("abs(00C").mangledNameHash());
     ASSERT_EQ(0x000002f4u, ImmutableString("abs(10C").mangledNameHash());
     ASSERT_EQ(0x0000025eu, ImmutableString("abs(20C").mangledNameHash());
-    ASSERT_EQ(0x000007f6u, ImmutableString("abs(30C").mangledNameHash());
+    ASSERT_EQ(0x000007f7u, ImmutableString("abs(30C").mangledNameHash());
     ASSERT_EQ(0x000000d1u, ImmutableString("sign(00B").mangledNameHash());
-    ASSERT_EQ(0x00000653u, ImmutableString("sign(10B").mangledNameHash());
+    ASSERT_EQ(0x00000654u, ImmutableString("sign(10B").mangledNameHash());
     ASSERT_EQ(0x000001e0u, ImmutableString("sign(20B").mangledNameHash());
     ASSERT_EQ(0x000000f2u, ImmutableString("sign(30B").mangledNameHash());
-    ASSERT_EQ(0x000005cbu, ImmutableString("sign(00D").mangledNameHash());
-    ASSERT_EQ(0x00000807u, ImmutableString("sign(10D").mangledNameHash());
+    ASSERT_EQ(0x000005ccu, ImmutableString("sign(00D").mangledNameHash());
+    ASSERT_EQ(0x00000808u, ImmutableString("sign(10D").mangledNameHash());
     ASSERT_EQ(0x00000060u, ImmutableString("sign(20D").mangledNameHash());
     ASSERT_EQ(0x000000f4u, ImmutableString("sign(30D").mangledNameHash());
-    ASSERT_EQ(0x000005c5u, ImmutableString("sign(00C").mangledNameHash());
-    ASSERT_EQ(0x00000804u, ImmutableString("sign(10C").mangledNameHash());
+    ASSERT_EQ(0x000005c6u, ImmutableString("sign(00C").mangledNameHash());
+    ASSERT_EQ(0x00000805u, ImmutableString("sign(10C").mangledNameHash());
     ASSERT_EQ(0x0000005eu, ImmutableString("sign(20C").mangledNameHash());
     ASSERT_EQ(0x000000f3u, ImmutableString("sign(30C").mangledNameHash());
     ASSERT_EQ(0x0000043au, ImmutableString("floor(00B").mangledNameHash());
     ASSERT_EQ(0x00000136u, ImmutableString("floor(10B").mangledNameHash());
-    ASSERT_EQ(0x00000588u, ImmutableString("floor(20B").mangledNameHash());
+    ASSERT_EQ(0x00000589u, ImmutableString("floor(20B").mangledNameHash());
     ASSERT_EQ(0x000004f0u, ImmutableString("floor(30B").mangledNameHash());
     ASSERT_EQ(0x00000439u, ImmutableString("floor(00C").mangledNameHash());
     ASSERT_EQ(0x00000137u, ImmutableString("floor(10C").mangledNameHash());
-    ASSERT_EQ(0x00000587u, ImmutableString("floor(20C").mangledNameHash());
+    ASSERT_EQ(0x00000588u, ImmutableString("floor(20C").mangledNameHash());
     ASSERT_EQ(0x000004f1u, ImmutableString("floor(30C").mangledNameHash());
-    ASSERT_EQ(0x000006e4u, ImmutableString("trunc(00B").mangledNameHash());
-    ASSERT_EQ(0x00000647u, ImmutableString("trunc(10B").mangledNameHash());
-    ASSERT_EQ(0x00000820u, ImmutableString("trunc(20B").mangledNameHash());
-    ASSERT_EQ(0x0000077au, ImmutableString("trunc(30B").mangledNameHash());
-    ASSERT_EQ(0x00000795u, ImmutableString("trunc(00C").mangledNameHash());
-    ASSERT_EQ(0x00000648u, ImmutableString("trunc(10C").mangledNameHash());
-    ASSERT_EQ(0x0000081fu, ImmutableString("trunc(20C").mangledNameHash());
-    ASSERT_EQ(0x0000077bu, ImmutableString("trunc(30C").mangledNameHash());
+    ASSERT_EQ(0x000006e5u, ImmutableString("trunc(00B").mangledNameHash());
+    ASSERT_EQ(0x00000648u, ImmutableString("trunc(10B").mangledNameHash());
+    ASSERT_EQ(0x00000821u, ImmutableString("trunc(20B").mangledNameHash());
+    ASSERT_EQ(0x0000077bu, ImmutableString("trunc(30B").mangledNameHash());
+    ASSERT_EQ(0x00000796u, ImmutableString("trunc(00C").mangledNameHash());
+    ASSERT_EQ(0x00000649u, ImmutableString("trunc(10C").mangledNameHash());
+    ASSERT_EQ(0x00000820u, ImmutableString("trunc(20C").mangledNameHash());
+    ASSERT_EQ(0x0000077cu, ImmutableString("trunc(30C").mangledNameHash());
     ASSERT_EQ(0x00000089u, ImmutableString("round(00B").mangledNameHash());
-    ASSERT_EQ(0x0000082eu, ImmutableString("round(10B").mangledNameHash());
+    ASSERT_EQ(0x0000082fu, ImmutableString("round(10B").mangledNameHash());
     ASSERT_EQ(0x0000038eu, ImmutableString("round(20B").mangledNameHash());
-    ASSERT_EQ(0x000006f5u, ImmutableString("round(30B").mangledNameHash());
+    ASSERT_EQ(0x000006f6u, ImmutableString("round(30B").mangledNameHash());
     ASSERT_EQ(0x00000088u, ImmutableString("round(00C").mangledNameHash());
-    ASSERT_EQ(0x0000082fu, ImmutableString("round(10C").mangledNameHash());
+    ASSERT_EQ(0x00000830u, ImmutableString("round(10C").mangledNameHash());
     ASSERT_EQ(0x0000038bu, ImmutableString("round(20C").mangledNameHash());
-    ASSERT_EQ(0x000006f6u, ImmutableString("round(30C").mangledNameHash());
-    ASSERT_EQ(0x000005e5u, ImmutableString("roundEven(00B").mangledNameHash());
+    ASSERT_EQ(0x000006f7u, ImmutableString("round(30C").mangledNameHash());
+    ASSERT_EQ(0x000005e6u, ImmutableString("roundEven(00B").mangledNameHash());
     ASSERT_EQ(0x00000536u, ImmutableString("roundEven(10B").mangledNameHash());
     ASSERT_EQ(0x000002dfu, ImmutableString("roundEven(20B").mangledNameHash());
     ASSERT_EQ(0x00000241u, ImmutableString("roundEven(30B").mangledNameHash());
-    ASSERT_EQ(0x000005e4u, ImmutableString("roundEven(00C").mangledNameHash());
+    ASSERT_EQ(0x000005e5u, ImmutableString("roundEven(00C").mangledNameHash());
     ASSERT_EQ(0x00000537u, ImmutableString("roundEven(10C").mangledNameHash());
     ASSERT_EQ(0x000002deu, ImmutableString("roundEven(20C").mangledNameHash());
     ASSERT_EQ(0x00000242u, ImmutableString("roundEven(30C").mangledNameHash());
-    ASSERT_EQ(0x000007a5u, ImmutableString("ceil(00B").mangledNameHash());
+    ASSERT_EQ(0x000007a6u, ImmutableString("ceil(00B").mangledNameHash());
     ASSERT_EQ(0x000001d6u, ImmutableString("ceil(10B").mangledNameHash());
     ASSERT_EQ(0x00000290u, ImmutableString("ceil(20B").mangledNameHash());
     ASSERT_EQ(0x000001dau, ImmutableString("ceil(30B").mangledNameHash());
-    ASSERT_EQ(0x000007a4u, ImmutableString("ceil(00C").mangledNameHash());
+    ASSERT_EQ(0x000007a5u, ImmutableString("ceil(00C").mangledNameHash());
     ASSERT_EQ(0x0000002eu, ImmutableString("ceil(10C").mangledNameHash());
     ASSERT_EQ(0x0000028fu, ImmutableString("ceil(20C").mangledNameHash());
     ASSERT_EQ(0x0000031eu, ImmutableString("ceil(30C").mangledNameHash());
@@ -185,142 +185,142 @@
     ASSERT_EQ(0x000003c8u, ImmutableString("fract(20C").mangledNameHash());
     ASSERT_EQ(0x00000324u, ImmutableString("fract(30C").mangledNameHash());
     ASSERT_EQ(0x00000534u, ImmutableString("mod(00B00B").mangledNameHash());
-    ASSERT_EQ(0x0000071au, ImmutableString("mod(10B00B").mangledNameHash());
-    ASSERT_EQ(0x000006cbu, ImmutableString("mod(20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000071bu, ImmutableString("mod(10B00B").mangledNameHash());
+    ASSERT_EQ(0x000006ccu, ImmutableString("mod(20B00B").mangledNameHash());
     ASSERT_EQ(0x000000feu, ImmutableString("mod(30B00B").mangledNameHash());
-    ASSERT_EQ(0x000007deu, ImmutableString("mod(10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000057au, ImmutableString("mod(20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000059fu, ImmutableString("mod(30B30B").mangledNameHash());
+    ASSERT_EQ(0x000007dfu, ImmutableString("mod(10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000057bu, ImmutableString("mod(20B20B").mangledNameHash());
+    ASSERT_EQ(0x000005a0u, ImmutableString("mod(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000004fu, ImmutableString("mod(00C00C").mangledNameHash());
-    ASSERT_EQ(0x000005f9u, ImmutableString("mod(10C00C").mangledNameHash());
+    ASSERT_EQ(0x000005fau, ImmutableString("mod(10C00C").mangledNameHash());
     ASSERT_EQ(0x000001bbu, ImmutableString("mod(20C00C").mangledNameHash());
-    ASSERT_EQ(0x0000084au, ImmutableString("mod(30C00C").mangledNameHash());
+    ASSERT_EQ(0x0000084bu, ImmutableString("mod(30C00C").mangledNameHash());
     ASSERT_EQ(0x00000314u, ImmutableString("mod(10C10C").mangledNameHash());
     ASSERT_EQ(0x00000323u, ImmutableString("mod(20C20C").mangledNameHash());
     ASSERT_EQ(0x0000043du, ImmutableString("mod(30C30C").mangledNameHash());
-    ASSERT_EQ(0x00000760u, ImmutableString("min(00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000761u, ImmutableString("min(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000256u, ImmutableString("min(10B00B").mangledNameHash());
     ASSERT_EQ(0x0000029bu, ImmutableString("min(20B00B").mangledNameHash());
     ASSERT_EQ(0x0000047au, ImmutableString("min(30B00B").mangledNameHash());
     ASSERT_EQ(0x00000285u, ImmutableString("min(10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000078bu, ImmutableString("min(20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000069cu, ImmutableString("min(30B30B").mangledNameHash());
+    ASSERT_EQ(0x0000078cu, ImmutableString("min(20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000069du, ImmutableString("min(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000003du, ImmutableString("min(00C00C").mangledNameHash());
-    ASSERT_EQ(0x0000063cu, ImmutableString("min(10C10C").mangledNameHash());
-    ASSERT_EQ(0x00000749u, ImmutableString("min(20C20C").mangledNameHash());
+    ASSERT_EQ(0x0000063du, ImmutableString("min(10C10C").mangledNameHash());
+    ASSERT_EQ(0x0000074au, ImmutableString("min(20C20C").mangledNameHash());
     ASSERT_EQ(0x00000432u, ImmutableString("min(30C30C").mangledNameHash());
-    ASSERT_EQ(0x000006dau, ImmutableString("min(10C00C").mangledNameHash());
+    ASSERT_EQ(0x000006dbu, ImmutableString("min(10C00C").mangledNameHash());
     ASSERT_EQ(0x00000399u, ImmutableString("min(20C00C").mangledNameHash());
     ASSERT_EQ(0x00000111u, ImmutableString("min(30C00C").mangledNameHash());
     ASSERT_EQ(0x000001e3u, ImmutableString("min(00D00D").mangledNameHash());
     ASSERT_EQ(0x00000463u, ImmutableString("min(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000007c2u, ImmutableString("min(20D20D").mangledNameHash());
-    ASSERT_EQ(0x000007afu, ImmutableString("min(30D30D").mangledNameHash());
+    ASSERT_EQ(0x000007c3u, ImmutableString("min(20D20D").mangledNameHash());
+    ASSERT_EQ(0x000007b0u, ImmutableString("min(30D30D").mangledNameHash());
     ASSERT_EQ(0x000003a5u, ImmutableString("min(10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000689u, ImmutableString("min(20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000845u, ImmutableString("min(30D00D").mangledNameHash());
+    ASSERT_EQ(0x0000068au, ImmutableString("min(20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000846u, ImmutableString("min(30D00D").mangledNameHash());
     ASSERT_EQ(0x00000360u, ImmutableString("min(00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000082cu, ImmutableString("min(10E10E").mangledNameHash());
-    ASSERT_EQ(0x00000675u, ImmutableString("min(20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000075bu, ImmutableString("min(30E30E").mangledNameHash());
+    ASSERT_EQ(0x0000082du, ImmutableString("min(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000676u, ImmutableString("min(20E20E").mangledNameHash());
+    ASSERT_EQ(0x0000075cu, ImmutableString("min(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000084u, ImmutableString("min(10E00E").mangledNameHash());
-    ASSERT_EQ(0x00000784u, ImmutableString("min(20E00E").mangledNameHash());
+    ASSERT_EQ(0x00000785u, ImmutableString("min(20E00E").mangledNameHash());
     ASSERT_EQ(0x00000527u, ImmutableString("min(30E00E").mangledNameHash());
     ASSERT_EQ(0x0000050bu, ImmutableString("max(00B00B").mangledNameHash());
-    ASSERT_EQ(0x000007b6u, ImmutableString("max(10B00B").mangledNameHash());
+    ASSERT_EQ(0x000007b7u, ImmutableString("max(10B00B").mangledNameHash());
     ASSERT_EQ(0x0000024cu, ImmutableString("max(20B00B").mangledNameHash());
     ASSERT_EQ(0x00000375u, ImmutableString("max(30B00B").mangledNameHash());
     ASSERT_EQ(0x00000208u, ImmutableString("max(10B10B").mangledNameHash());
-    ASSERT_EQ(0x000005c1u, ImmutableString("max(20B20B").mangledNameHash());
+    ASSERT_EQ(0x000005c2u, ImmutableString("max(20B20B").mangledNameHash());
     ASSERT_EQ(0x000000afu, ImmutableString("max(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000822u, ImmutableString("max(00C00C").mangledNameHash());
-    ASSERT_EQ(0x000005f0u, ImmutableString("max(10C10C").mangledNameHash());
+    ASSERT_EQ(0x00000823u, ImmutableString("max(00C00C").mangledNameHash());
+    ASSERT_EQ(0x000005f1u, ImmutableString("max(10C10C").mangledNameHash());
     ASSERT_EQ(0x00000207u, ImmutableString("max(20C20C").mangledNameHash());
     ASSERT_EQ(0x00000393u, ImmutableString("max(30C30C").mangledNameHash());
-    ASSERT_EQ(0x00000695u, ImmutableString("max(10C00C").mangledNameHash());
-    ASSERT_EQ(0x000005a5u, ImmutableString("max(20C00C").mangledNameHash());
+    ASSERT_EQ(0x00000696u, ImmutableString("max(10C00C").mangledNameHash());
+    ASSERT_EQ(0x000005a6u, ImmutableString("max(20C00C").mangledNameHash());
     ASSERT_EQ(0x000002fdu, ImmutableString("max(30C00C").mangledNameHash());
     ASSERT_EQ(0x000002e9u, ImmutableString("max(00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000583u, ImmutableString("max(10D10D").mangledNameHash());
-    ASSERT_EQ(0x00000582u, ImmutableString("max(20D20D").mangledNameHash());
+    ASSERT_EQ(0x00000584u, ImmutableString("max(10D10D").mangledNameHash());
+    ASSERT_EQ(0x00000583u, ImmutableString("max(20D20D").mangledNameHash());
     ASSERT_EQ(0x000003ddu, ImmutableString("max(30D30D").mangledNameHash());
     ASSERT_EQ(0x000004edu, ImmutableString("max(10D00D").mangledNameHash());
-    ASSERT_EQ(0x000006d3u, ImmutableString("max(20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006d4u, ImmutableString("max(20D00D").mangledNameHash());
     ASSERT_EQ(0x00000047u, ImmutableString("max(30D00D").mangledNameHash());
-    ASSERT_EQ(0x00000654u, ImmutableString("max(00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000655u, ImmutableString("max(00E00E").mangledNameHash());
     ASSERT_EQ(0x000000aeu, ImmutableString("max(10E10E").mangledNameHash());
     ASSERT_EQ(0x000002f0u, ImmutableString("max(20E20E").mangledNameHash());
     ASSERT_EQ(0x00000327u, ImmutableString("max(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000340u, ImmutableString("max(10E00E").mangledNameHash());
     ASSERT_EQ(0x000001a6u, ImmutableString("max(20E00E").mangledNameHash());
-    ASSERT_EQ(0x00000716u, ImmutableString("max(30E00E").mangledNameHash());
-    ASSERT_EQ(0x0000072du, ImmutableString("clamp(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000717u, ImmutableString("max(30E00E").mangledNameHash());
+    ASSERT_EQ(0x0000072eu, ImmutableString("clamp(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x000004fau, ImmutableString("clamp(10B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000005b9u, ImmutableString("clamp(20B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000005bau, ImmutableString("clamp(20B00B00B").mangledNameHash());
     ASSERT_EQ(0x000004eau, ImmutableString("clamp(30B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000246u, ImmutableString("clamp(10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000081cu, ImmutableString("clamp(20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000081du, ImmutableString("clamp(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000027u, ImmutableString("clamp(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x0000033eu, ImmutableString("clamp(00C00C00C").mangledNameHash());
     ASSERT_EQ(0x0000049du, ImmutableString("clamp(10C00C00C").mangledNameHash());
     ASSERT_EQ(0x00000277u, ImmutableString("clamp(20C00C00C").mangledNameHash());
     ASSERT_EQ(0x00000344u, ImmutableString("clamp(30C00C00C").mangledNameHash());
-    ASSERT_EQ(0x00000732u, ImmutableString("clamp(10C10C10C").mangledNameHash());
+    ASSERT_EQ(0x00000733u, ImmutableString("clamp(10C10C10C").mangledNameHash());
     ASSERT_EQ(0x0000007au, ImmutableString("clamp(20C20C20C").mangledNameHash());
-    ASSERT_EQ(0x000006aau, ImmutableString("clamp(30C30C30C").mangledNameHash());
+    ASSERT_EQ(0x000006abu, ImmutableString("clamp(30C30C30C").mangledNameHash());
     ASSERT_EQ(0x000004efu, ImmutableString("clamp(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000231u, ImmutableString("clamp(10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000fcu, ImmutableString("clamp(20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000042au, ImmutableString("clamp(30D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006bdu, ImmutableString("clamp(10D10D10D").mangledNameHash());
+    ASSERT_EQ(0x000006beu, ImmutableString("clamp(10D10D10D").mangledNameHash());
     ASSERT_EQ(0x0000033bu, ImmutableString("clamp(20D20D20D").mangledNameHash());
-    ASSERT_EQ(0x000005f7u, ImmutableString("clamp(30D30D30D").mangledNameHash());
+    ASSERT_EQ(0x000005f8u, ImmutableString("clamp(30D30D30D").mangledNameHash());
     ASSERT_EQ(0x0000023bu, ImmutableString("clamp(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x000005e8u, ImmutableString("clamp(10E00E00E").mangledNameHash());
-    ASSERT_EQ(0x000007feu, ImmutableString("clamp(20E00E00E").mangledNameHash());
+    ASSERT_EQ(0x000005e9u, ImmutableString("clamp(10E00E00E").mangledNameHash());
+    ASSERT_EQ(0x000007ffu, ImmutableString("clamp(20E00E00E").mangledNameHash());
     ASSERT_EQ(0x00000156u, ImmutableString("clamp(30E00E00E").mangledNameHash());
     ASSERT_EQ(0x000000b0u, ImmutableString("clamp(10E10E10E").mangledNameHash());
     ASSERT_EQ(0x000002a2u, ImmutableString("clamp(20E20E20E").mangledNameHash());
-    ASSERT_EQ(0x000006c4u, ImmutableString("clamp(30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x000006c5u, ImmutableString("clamp(30E30E30E").mangledNameHash());
     ASSERT_EQ(0x00000264u, ImmutableString("mix(00B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000005f5u, ImmutableString("mix(10B10B00B").mangledNameHash());
+    ASSERT_EQ(0x000005f6u, ImmutableString("mix(10B10B00B").mangledNameHash());
     ASSERT_EQ(0x0000001bu, ImmutableString("mix(20B20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000690u, ImmutableString("mix(30B30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000691u, ImmutableString("mix(30B30B00B").mangledNameHash());
     ASSERT_EQ(0x00000550u, ImmutableString("mix(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000016au, ImmutableString("mix(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000003d6u, ImmutableString("mix(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x00000429u, ImmutableString("mix(00C00C00C").mangledNameHash());
-    ASSERT_EQ(0x00000628u, ImmutableString("mix(10C10C00C").mangledNameHash());
+    ASSERT_EQ(0x00000629u, ImmutableString("mix(10C10C00C").mangledNameHash());
     ASSERT_EQ(0x00000415u, ImmutableString("mix(20C20C00C").mangledNameHash());
-    ASSERT_EQ(0x000006d1u, ImmutableString("mix(30C30C00C").mangledNameHash());
-    ASSERT_EQ(0x00000844u, ImmutableString("mix(10C10C10C").mangledNameHash());
+    ASSERT_EQ(0x000006d2u, ImmutableString("mix(30C30C00C").mangledNameHash());
+    ASSERT_EQ(0x00000845u, ImmutableString("mix(10C10C10C").mangledNameHash());
     ASSERT_EQ(0x000002b6u, ImmutableString("mix(20C20C20C").mangledNameHash());
-    ASSERT_EQ(0x00000763u, ImmutableString("mix(30C30C30C").mangledNameHash());
+    ASSERT_EQ(0x00000764u, ImmutableString("mix(30C30C30C").mangledNameHash());
     ASSERT_EQ(0x00000265u, ImmutableString("mix(00B00B00F").mangledNameHash());
     ASSERT_EQ(0x0000054eu, ImmutableString("mix(10B10B10F").mangledNameHash());
     ASSERT_EQ(0x00000168u, ImmutableString("mix(20B20B20F").mangledNameHash());
     ASSERT_EQ(0x000003d5u, ImmutableString("mix(30B30B30F").mangledNameHash());
     ASSERT_EQ(0x00000183u, ImmutableString("mix(00C00C00F").mangledNameHash());
-    ASSERT_EQ(0x000005a0u, ImmutableString("mix(10C10C10F").mangledNameHash());
+    ASSERT_EQ(0x000005a1u, ImmutableString("mix(10C10C10F").mangledNameHash());
     ASSERT_EQ(0x000002b3u, ImmutableString("mix(20C20C20F").mangledNameHash());
-    ASSERT_EQ(0x00000762u, ImmutableString("mix(30C30C30F").mangledNameHash());
+    ASSERT_EQ(0x00000763u, ImmutableString("mix(30C30C30F").mangledNameHash());
     ASSERT_EQ(0x00000304u, ImmutableString("mix(00D00D00F").mangledNameHash());
     ASSERT_EQ(0x000002d7u, ImmutableString("mix(10D10D10F").mangledNameHash());
     ASSERT_EQ(0x00000038u, ImmutableString("mix(20D20D20F").mangledNameHash());
     ASSERT_EQ(0x0000012du, ImmutableString("mix(30D30D30F").mangledNameHash());
     ASSERT_EQ(0x00000302u, ImmutableString("mix(00E00E00F").mangledNameHash());
-    ASSERT_EQ(0x000007e5u, ImmutableString("mix(10E10E10F").mangledNameHash());
+    ASSERT_EQ(0x000007e6u, ImmutableString("mix(10E10E10F").mangledNameHash());
     ASSERT_EQ(0x0000042bu, ImmutableString("mix(20E20E20F").mangledNameHash());
     ASSERT_EQ(0x0000027au, ImmutableString("mix(30E30E30F").mangledNameHash());
     ASSERT_EQ(0x00000192u, ImmutableString("mix(00F00F00F").mangledNameHash());
     ASSERT_EQ(0x000003e4u, ImmutableString("mix(10F10F10F").mangledNameHash());
     ASSERT_EQ(0x000001c7u, ImmutableString("mix(20F20F20F").mangledNameHash());
     ASSERT_EQ(0x0000025cu, ImmutableString("mix(30F30F30F").mangledNameHash());
-    ASSERT_EQ(0x00000741u, ImmutableString("step(00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000742u, ImmutableString("step(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000179u, ImmutableString("step(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000093u, ImmutableString("step(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000378u, ImmutableString("step(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000006acu, ImmutableString("step(00B10B").mangledNameHash());
+    ASSERT_EQ(0x000006adu, ImmutableString("step(00B10B").mangledNameHash());
     ASSERT_EQ(0x00000457u, ImmutableString("step(00B20B").mangledNameHash());
     ASSERT_EQ(0x0000038du, ImmutableString("step(00B30B").mangledNameHash());
     ASSERT_EQ(0x00000075u, ImmutableString("step(00C00C").mangledNameHash());
@@ -330,14 +330,14 @@
     ASSERT_EQ(0x0000010du, ImmutableString("step(00C10C").mangledNameHash());
     ASSERT_EQ(0x00000391u, ImmutableString("step(00C20C").mangledNameHash());
     ASSERT_EQ(0x00000459u, ImmutableString("step(00C30C").mangledNameHash());
-    ASSERT_EQ(0x0000079du, ImmutableString("smoothstep(00C00C00C").mangledNameHash());
+    ASSERT_EQ(0x0000079eu, ImmutableString("smoothstep(00C00C00C").mangledNameHash());
     ASSERT_EQ(0x00000258u, ImmutableString("smoothstep(10C10C10C").mangledNameHash());
     ASSERT_EQ(0x0000054au, ImmutableString("smoothstep(20C20C20C").mangledNameHash());
     ASSERT_EQ(0x00000511u, ImmutableString("smoothstep(30C30C30C").mangledNameHash());
-    ASSERT_EQ(0x000006fbu, ImmutableString("smoothstep(00C00C10C").mangledNameHash());
+    ASSERT_EQ(0x000006fcu, ImmutableString("smoothstep(00C00C10C").mangledNameHash());
     ASSERT_EQ(0x0000008du, ImmutableString("smoothstep(00C00C20C").mangledNameHash());
-    ASSERT_EQ(0x000007cbu, ImmutableString("smoothstep(00C00C30C").mangledNameHash());
-    ASSERT_EQ(0x00000611u, ImmutableString("smoothstep(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000007ccu, ImmutableString("smoothstep(00C00C30C").mangledNameHash());
+    ASSERT_EQ(0x00000612u, ImmutableString("smoothstep(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000352u, ImmutableString("smoothstep(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000217u, ImmutableString("smoothstep(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000001e1u, ImmutableString("smoothstep(30B30B30B").mangledNameHash());
@@ -346,27 +346,27 @@
     ASSERT_EQ(0x000001c8u, ImmutableString("smoothstep(00B00B30B").mangledNameHash());
     ASSERT_EQ(0x00000442u, ImmutableString("modf(00B00B").mangledNameHash());
     ASSERT_EQ(0x00000056u, ImmutableString("modf(10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000597u, ImmutableString("modf(20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000598u, ImmutableString("modf(20B20B").mangledNameHash());
     ASSERT_EQ(0x000002ddu, ImmutableString("modf(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000005ddu, ImmutableString("modf(00C00C").mangledNameHash());
+    ASSERT_EQ(0x000005deu, ImmutableString("modf(00C00C").mangledNameHash());
     ASSERT_EQ(0x00000406u, ImmutableString("modf(10C10C").mangledNameHash());
     ASSERT_EQ(0x00000437u, ImmutableString("modf(20C20C").mangledNameHash());
     ASSERT_EQ(0x000002f7u, ImmutableString("modf(30C30C").mangledNameHash());
     ASSERT_EQ(0x0000035bu, ImmutableString("isnan(00B").mangledNameHash());
     ASSERT_EQ(0x0000041eu, ImmutableString("isnan(10B").mangledNameHash());
-    ASSERT_EQ(0x00000710u, ImmutableString("isnan(20B").mangledNameHash());
+    ASSERT_EQ(0x00000711u, ImmutableString("isnan(20B").mangledNameHash());
     ASSERT_EQ(0x0000044fu, ImmutableString("isnan(30B").mangledNameHash());
     ASSERT_EQ(0x0000035cu, ImmutableString("isnan(00C").mangledNameHash());
     ASSERT_EQ(0x0000041du, ImmutableString("isnan(10C").mangledNameHash());
-    ASSERT_EQ(0x00000711u, ImmutableString("isnan(20C").mangledNameHash());
-    ASSERT_EQ(0x000007b9u, ImmutableString("isnan(30C").mangledNameHash());
+    ASSERT_EQ(0x00000712u, ImmutableString("isnan(20C").mangledNameHash());
+    ASSERT_EQ(0x000007bau, ImmutableString("isnan(30C").mangledNameHash());
     ASSERT_EQ(0x000000fau, ImmutableString("isinf(00B").mangledNameHash());
     ASSERT_EQ(0x000001abu, ImmutableString("isinf(10B").mangledNameHash());
-    ASSERT_EQ(0x00000829u, ImmutableString("isinf(20B").mangledNameHash());
+    ASSERT_EQ(0x0000082au, ImmutableString("isinf(20B").mangledNameHash());
     ASSERT_EQ(0x0000007eu, ImmutableString("isinf(30B").mangledNameHash());
     ASSERT_EQ(0x000000fbu, ImmutableString("isinf(00C").mangledNameHash());
     ASSERT_EQ(0x000001aau, ImmutableString("isinf(10C").mangledNameHash());
-    ASSERT_EQ(0x00000735u, ImmutableString("isinf(20C").mangledNameHash());
+    ASSERT_EQ(0x00000736u, ImmutableString("isinf(20C").mangledNameHash());
     ASSERT_EQ(0x000002d5u, ImmutableString("isinf(30C").mangledNameHash());
     ASSERT_EQ(0x0000042fu, ImmutableString("floatBitsToInt(00B").mangledNameHash());
     ASSERT_EQ(0x0000042cu, ImmutableString("floatBitsToInt(10B").mangledNameHash());
@@ -376,15 +376,15 @@
     ASSERT_EQ(0x000004a6u, ImmutableString("floatBitsToUint(10B").mangledNameHash());
     ASSERT_EQ(0x00000034u, ImmutableString("floatBitsToUint(20B").mangledNameHash());
     ASSERT_EQ(0x0000036fu, ImmutableString("floatBitsToUint(30B").mangledNameHash());
-    ASSERT_EQ(0x000007ecu, ImmutableString("intBitsToFloat(00D").mangledNameHash());
-    ASSERT_EQ(0x00000748u, ImmutableString("intBitsToFloat(10D").mangledNameHash());
+    ASSERT_EQ(0x000007edu, ImmutableString("intBitsToFloat(00D").mangledNameHash());
+    ASSERT_EQ(0x00000749u, ImmutableString("intBitsToFloat(10D").mangledNameHash());
     ASSERT_EQ(0x000000deu, ImmutableString("intBitsToFloat(20D").mangledNameHash());
     ASSERT_EQ(0x00000164u, ImmutableString("intBitsToFloat(30D").mangledNameHash());
-    ASSERT_EQ(0x0000068bu, ImmutableString("uintBitsToFloat(00E").mangledNameHash());
-    ASSERT_EQ(0x0000071cu, ImmutableString("uintBitsToFloat(10E").mangledNameHash());
-    ASSERT_EQ(0x000007dcu, ImmutableString("uintBitsToFloat(20E").mangledNameHash());
+    ASSERT_EQ(0x0000068cu, ImmutableString("uintBitsToFloat(00E").mangledNameHash());
+    ASSERT_EQ(0x0000071du, ImmutableString("uintBitsToFloat(10E").mangledNameHash());
+    ASSERT_EQ(0x000007ddu, ImmutableString("uintBitsToFloat(20E").mangledNameHash());
     ASSERT_EQ(0x0000001eu, ImmutableString("uintBitsToFloat(30E").mangledNameHash());
-    ASSERT_EQ(0x00000835u, ImmutableString("fma(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000836u, ImmutableString("fma(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000568u, ImmutableString("fma(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000018au, ImmutableString("fma(20B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000273u, ImmutableString("fma(30B30B30B").mangledNameHash());
@@ -399,68 +399,68 @@
     ASSERT_EQ(0x00000143u, ImmutableString("frexp(00C00D").mangledNameHash());
     ASSERT_EQ(0x00000386u, ImmutableString("frexp(10C10D").mangledNameHash());
     ASSERT_EQ(0x0000011au, ImmutableString("frexp(20C20D").mangledNameHash());
-    ASSERT_EQ(0x00000843u, ImmutableString("frexp(30C30D").mangledNameHash());
+    ASSERT_EQ(0x00000844u, ImmutableString("frexp(30C30D").mangledNameHash());
     ASSERT_EQ(0x0000023du, ImmutableString("ldexp(00B00D").mangledNameHash());
-    ASSERT_EQ(0x0000080fu, ImmutableString("ldexp(10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000810u, ImmutableString("ldexp(10B10D").mangledNameHash());
     ASSERT_EQ(0x000001e7u, ImmutableString("ldexp(20B20D").mangledNameHash());
     ASSERT_EQ(0x00000374u, ImmutableString("ldexp(30B30D").mangledNameHash());
-    ASSERT_EQ(0x00000664u, ImmutableString("ldexp(00C00D").mangledNameHash());
+    ASSERT_EQ(0x00000665u, ImmutableString("ldexp(00C00D").mangledNameHash());
     ASSERT_EQ(0x00000446u, ImmutableString("ldexp(10C10D").mangledNameHash());
     ASSERT_EQ(0x0000023au, ImmutableString("ldexp(20C20D").mangledNameHash());
     ASSERT_EQ(0x00000252u, ImmutableString("ldexp(30C30D").mangledNameHash());
     ASSERT_EQ(0x0000036eu, ImmutableString("packSnorm2x16(10B").mangledNameHash());
     ASSERT_EQ(0x000003afu, ImmutableString("packHalf2x16(10B").mangledNameHash());
-    ASSERT_EQ(0x00000774u, ImmutableString("unpackSnorm2x16(00E").mangledNameHash());
+    ASSERT_EQ(0x00000775u, ImmutableString("unpackSnorm2x16(00E").mangledNameHash());
     ASSERT_EQ(0x0000009fu, ImmutableString("unpackHalf2x16(00E").mangledNameHash());
     ASSERT_EQ(0x0000019du, ImmutableString("packUnorm2x16(10B").mangledNameHash());
     ASSERT_EQ(0x00000482u, ImmutableString("unpackUnorm2x16(00E").mangledNameHash());
     ASSERT_EQ(0x0000048au, ImmutableString("packUnorm4x8(30B").mangledNameHash());
-    ASSERT_EQ(0x000005f4u, ImmutableString("packSnorm4x8(30B").mangledNameHash());
-    ASSERT_EQ(0x000007ddu, ImmutableString("unpackUnorm4x8(00E").mangledNameHash());
-    ASSERT_EQ(0x00000709u, ImmutableString("unpackSnorm4x8(00E").mangledNameHash());
+    ASSERT_EQ(0x000005f5u, ImmutableString("packSnorm4x8(30B").mangledNameHash());
+    ASSERT_EQ(0x000007deu, ImmutableString("unpackUnorm4x8(00E").mangledNameHash());
+    ASSERT_EQ(0x0000070au, ImmutableString("unpackSnorm4x8(00E").mangledNameHash());
     ASSERT_EQ(0x000004f9u, ImmutableString("packDouble2x32(10E").mangledNameHash());
     ASSERT_EQ(0x0000026bu, ImmutableString("unpackDouble2x32(00C").mangledNameHash());
-    ASSERT_EQ(0x0000077cu, ImmutableString("length(00B").mangledNameHash());
-    ASSERT_EQ(0x000006e6u, ImmutableString("length(10B").mangledNameHash());
+    ASSERT_EQ(0x0000077du, ImmutableString("length(00B").mangledNameHash());
+    ASSERT_EQ(0x000006e7u, ImmutableString("length(10B").mangledNameHash());
     ASSERT_EQ(0x0000023cu, ImmutableString("length(20B").mangledNameHash());
-    ASSERT_EQ(0x0000059eu, ImmutableString("length(30B").mangledNameHash());
-    ASSERT_EQ(0x0000077du, ImmutableString("length(00C").mangledNameHash());
-    ASSERT_EQ(0x000006e5u, ImmutableString("length(10C").mangledNameHash());
+    ASSERT_EQ(0x0000059fu, ImmutableString("length(30B").mangledNameHash());
+    ASSERT_EQ(0x0000077eu, ImmutableString("length(00C").mangledNameHash());
+    ASSERT_EQ(0x000006e6u, ImmutableString("length(10C").mangledNameHash());
     ASSERT_EQ(0x00000245u, ImmutableString("length(20C").mangledNameHash());
-    ASSERT_EQ(0x0000059du, ImmutableString("length(30C").mangledNameHash());
-    ASSERT_EQ(0x000007a6u, ImmutableString("distance(00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000059eu, ImmutableString("length(30C").mangledNameHash());
+    ASSERT_EQ(0x000007a7u, ImmutableString("distance(00B00B").mangledNameHash());
     ASSERT_EQ(0x000000cfu, ImmutableString("distance(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000053eu, ImmutableString("distance(20B20B").mangledNameHash());
     ASSERT_EQ(0x000004d3u, ImmutableString("distance(30B30B").mangledNameHash());
     ASSERT_EQ(0x0000044eu, ImmutableString("distance(00C00C").mangledNameHash());
     ASSERT_EQ(0x0000032bu, ImmutableString("distance(10C10C").mangledNameHash());
-    ASSERT_EQ(0x000007a0u, ImmutableString("distance(20C20C").mangledNameHash());
+    ASSERT_EQ(0x000007a1u, ImmutableString("distance(20C20C").mangledNameHash());
     ASSERT_EQ(0x00000574u, ImmutableString("distance(30C30C").mangledNameHash());
-    ASSERT_EQ(0x000006ebu, ImmutableString("dot(00B00B").mangledNameHash());
+    ASSERT_EQ(0x000006ecu, ImmutableString("dot(00B00B").mangledNameHash());
     ASSERT_EQ(0x000002c3u, ImmutableString("dot(10B10B").mangledNameHash());
     ASSERT_EQ(0x000003f0u, ImmutableString("dot(20B20B").mangledNameHash());
     ASSERT_EQ(0x000004e1u, ImmutableString("dot(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000392u, ImmutableString("dot(00C00C").mangledNameHash());
-    ASSERT_EQ(0x00000739u, ImmutableString("dot(10C10C").mangledNameHash());
-    ASSERT_EQ(0x0000064bu, ImmutableString("dot(20C20C").mangledNameHash());
-    ASSERT_EQ(0x0000060bu, ImmutableString("dot(30C30C").mangledNameHash());
-    ASSERT_EQ(0x000005b6u, ImmutableString("cross(20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000073au, ImmutableString("dot(10C10C").mangledNameHash());
+    ASSERT_EQ(0x0000064cu, ImmutableString("dot(20C20C").mangledNameHash());
+    ASSERT_EQ(0x0000060cu, ImmutableString("dot(30C30C").mangledNameHash());
+    ASSERT_EQ(0x000005b7u, ImmutableString("cross(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000034du, ImmutableString("cross(20C20C").mangledNameHash());
     ASSERT_EQ(0x0000049bu, ImmutableString("normalize(00B").mangledNameHash());
-    ASSERT_EQ(0x0000070eu, ImmutableString("normalize(10B").mangledNameHash());
+    ASSERT_EQ(0x0000070fu, ImmutableString("normalize(10B").mangledNameHash());
     ASSERT_EQ(0x00000115u, ImmutableString("normalize(20B").mangledNameHash());
     ASSERT_EQ(0x000003f7u, ImmutableString("normalize(30B").mangledNameHash());
     ASSERT_EQ(0x0000049cu, ImmutableString("normalize(00C").mangledNameHash());
-    ASSERT_EQ(0x00000708u, ImmutableString("normalize(10C").mangledNameHash());
+    ASSERT_EQ(0x00000709u, ImmutableString("normalize(10C").mangledNameHash());
     ASSERT_EQ(0x00000116u, ImmutableString("normalize(20C").mangledNameHash());
     ASSERT_EQ(0x000003f6u, ImmutableString("normalize(30C").mangledNameHash());
-    ASSERT_EQ(0x000005d1u, ImmutableString("faceforward(00B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000005d2u, ImmutableString("faceforward(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x000003a3u, ImmutableString("faceforward(10B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000187u, ImmutableString("faceforward(20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x0000079fu, ImmutableString("faceforward(30B30B30B").mangledNameHash());
+    ASSERT_EQ(0x000007a0u, ImmutableString("faceforward(30B30B30B").mangledNameHash());
     ASSERT_EQ(0x00000316u, ImmutableString("faceforward(00C00C00C").mangledNameHash());
-    ASSERT_EQ(0x00000687u, ImmutableString("faceforward(10C10C10C").mangledNameHash());
-    ASSERT_EQ(0x00000750u, ImmutableString("faceforward(20C20C20C").mangledNameHash());
+    ASSERT_EQ(0x00000688u, ImmutableString("faceforward(10C10C10C").mangledNameHash());
+    ASSERT_EQ(0x00000751u, ImmutableString("faceforward(20C20C20C").mangledNameHash());
     ASSERT_EQ(0x00000535u, ImmutableString("faceforward(30C30C30C").mangledNameHash());
     ASSERT_EQ(0x0000029cu, ImmutableString("reflect(00B00B").mangledNameHash());
     ASSERT_EQ(0x000002b0u, ImmutableString("reflect(10B10B").mangledNameHash());
@@ -468,82 +468,82 @@
     ASSERT_EQ(0x0000052bu, ImmutableString("reflect(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000162u, ImmutableString("reflect(00C00C").mangledNameHash());
     ASSERT_EQ(0x0000054fu, ImmutableString("reflect(10C10C").mangledNameHash());
-    ASSERT_EQ(0x0000069du, ImmutableString("reflect(20C20C").mangledNameHash());
+    ASSERT_EQ(0x0000069eu, ImmutableString("reflect(20C20C").mangledNameHash());
     ASSERT_EQ(0x000004f4u, ImmutableString("reflect(30C30C").mangledNameHash());
     ASSERT_EQ(0x00000105u, ImmutableString("refract(00B00B00B").mangledNameHash());
     ASSERT_EQ(0x000002b1u, ImmutableString("refract(10B10B00B").mangledNameHash());
     ASSERT_EQ(0x0000031du, ImmutableString("refract(20B20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000586u, ImmutableString("refract(30B30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000725u, ImmutableString("refract(00C00C00B").mangledNameHash());
+    ASSERT_EQ(0x00000587u, ImmutableString("refract(30B30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000726u, ImmutableString("refract(00C00C00B").mangledNameHash());
     ASSERT_EQ(0x0000035fu, ImmutableString("refract(10C10C00B").mangledNameHash());
-    ASSERT_EQ(0x00000657u, ImmutableString("refract(20C20C00B").mangledNameHash());
+    ASSERT_EQ(0x00000658u, ImmutableString("refract(20C20C00B").mangledNameHash());
     ASSERT_EQ(0x0000036cu, ImmutableString("refract(30C30C00B").mangledNameHash());
     ASSERT_EQ(0x000002ceu, ImmutableString("ftransform(").mangledNameHash());
     ASSERT_EQ(0x000001ffu, ImmutableString("matrixCompMult(50B50B").mangledNameHash());
-    ASSERT_EQ(0x000006f2u, ImmutableString("matrixCompMult(A0BA0B").mangledNameHash());
-    ASSERT_EQ(0x0000058bu, ImmutableString("matrixCompMult(F0BF0B").mangledNameHash());
+    ASSERT_EQ(0x000006f3u, ImmutableString("matrixCompMult(A0BA0B").mangledNameHash());
+    ASSERT_EQ(0x0000058cu, ImmutableString("matrixCompMult(F0BF0B").mangledNameHash());
     ASSERT_EQ(0x00000151u, ImmutableString("matrixCompMult(90B90B").mangledNameHash());
-    ASSERT_EQ(0x00000770u, ImmutableString("matrixCompMult(60B60B").mangledNameHash());
-    ASSERT_EQ(0x00000696u, ImmutableString("matrixCompMult(D0BD0B").mangledNameHash());
-    ASSERT_EQ(0x0000071eu, ImmutableString("matrixCompMult(70B70B").mangledNameHash());
+    ASSERT_EQ(0x00000771u, ImmutableString("matrixCompMult(60B60B").mangledNameHash());
+    ASSERT_EQ(0x00000697u, ImmutableString("matrixCompMult(D0BD0B").mangledNameHash());
+    ASSERT_EQ(0x0000071fu, ImmutableString("matrixCompMult(70B70B").mangledNameHash());
     ASSERT_EQ(0x00000346u, ImmutableString("matrixCompMult(E0BE0B").mangledNameHash());
-    ASSERT_EQ(0x000005b4u, ImmutableString("matrixCompMult(B0BB0B").mangledNameHash());
+    ASSERT_EQ(0x000005b5u, ImmutableString("matrixCompMult(B0BB0B").mangledNameHash());
     ASSERT_EQ(0x000000a1u, ImmutableString("outerProduct(10B10B").mangledNameHash());
     ASSERT_EQ(0x000000bdu, ImmutableString("outerProduct(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000018du, ImmutableString("outerProduct(30B30B").mangledNameHash());
-    ASSERT_EQ(0x00000733u, ImmutableString("outerProduct(20B10B").mangledNameHash());
+    ASSERT_EQ(0x00000734u, ImmutableString("outerProduct(20B10B").mangledNameHash());
     ASSERT_EQ(0x0000009cu, ImmutableString("outerProduct(10B20B").mangledNameHash());
     ASSERT_EQ(0x000002e0u, ImmutableString("outerProduct(30B10B").mangledNameHash());
     ASSERT_EQ(0x0000013fu, ImmutableString("outerProduct(10B30B").mangledNameHash());
     ASSERT_EQ(0x000000e9u, ImmutableString("outerProduct(30B20B").mangledNameHash());
     ASSERT_EQ(0x00000013u, ImmutableString("outerProduct(20B30B").mangledNameHash());
-    ASSERT_EQ(0x000007bau, ImmutableString("transpose(50B").mangledNameHash());
-    ASSERT_EQ(0x000005feu, ImmutableString("transpose(A0B").mangledNameHash());
-    ASSERT_EQ(0x000006c0u, ImmutableString("transpose(F0B").mangledNameHash());
-    ASSERT_EQ(0x000005cdu, ImmutableString("transpose(60B").mangledNameHash());
-    ASSERT_EQ(0x000006d0u, ImmutableString("transpose(90B").mangledNameHash());
-    ASSERT_EQ(0x00000680u, ImmutableString("transpose(70B").mangledNameHash());
-    ASSERT_EQ(0x000007f5u, ImmutableString("transpose(D0B").mangledNameHash());
+    ASSERT_EQ(0x000007bbu, ImmutableString("transpose(50B").mangledNameHash());
+    ASSERT_EQ(0x000005ffu, ImmutableString("transpose(A0B").mangledNameHash());
+    ASSERT_EQ(0x000006c1u, ImmutableString("transpose(F0B").mangledNameHash());
+    ASSERT_EQ(0x000005ceu, ImmutableString("transpose(60B").mangledNameHash());
+    ASSERT_EQ(0x000006d1u, ImmutableString("transpose(90B").mangledNameHash());
+    ASSERT_EQ(0x00000681u, ImmutableString("transpose(70B").mangledNameHash());
+    ASSERT_EQ(0x000007f6u, ImmutableString("transpose(D0B").mangledNameHash());
     ASSERT_EQ(0x000001c5u, ImmutableString("transpose(B0B").mangledNameHash());
     ASSERT_EQ(0x00000050u, ImmutableString("transpose(E0B").mangledNameHash());
     ASSERT_EQ(0x00000059u, ImmutableString("determinant(50B").mangledNameHash());
     ASSERT_EQ(0x00000449u, ImmutableString("determinant(A0B").mangledNameHash());
-    ASSERT_EQ(0x000005fdu, ImmutableString("determinant(F0B").mangledNameHash());
+    ASSERT_EQ(0x000005feu, ImmutableString("determinant(F0B").mangledNameHash());
     ASSERT_EQ(0x000002c2u, ImmutableString("inverse(50B").mangledNameHash());
     ASSERT_EQ(0x00000558u, ImmutableString("inverse(A0B").mangledNameHash());
     ASSERT_EQ(0x00000118u, ImmutableString("inverse(F0B").mangledNameHash());
     ASSERT_EQ(0x000001b6u, ImmutableString("lessThan(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000005cu, ImmutableString("lessThan(20B20B").mangledNameHash());
-    ASSERT_EQ(0x000005b5u, ImmutableString("lessThan(30B30B").mangledNameHash());
+    ASSERT_EQ(0x000005b6u, ImmutableString("lessThan(30B30B").mangledNameHash());
     ASSERT_EQ(0x000004fdu, ImmutableString("lessThan(10D10D").mangledNameHash());
     ASSERT_EQ(0x00000079u, ImmutableString("lessThan(20D20D").mangledNameHash());
-    ASSERT_EQ(0x00000775u, ImmutableString("lessThan(30D30D").mangledNameHash());
+    ASSERT_EQ(0x00000776u, ImmutableString("lessThan(30D30D").mangledNameHash());
     ASSERT_EQ(0x0000006eu, ImmutableString("lessThan(10E10E").mangledNameHash());
-    ASSERT_EQ(0x000005c2u, ImmutableString("lessThan(20E20E").mangledNameHash());
-    ASSERT_EQ(0x0000067eu, ImmutableString("lessThan(30E30E").mangledNameHash());
+    ASSERT_EQ(0x000005c3u, ImmutableString("lessThan(20E20E").mangledNameHash());
+    ASSERT_EQ(0x0000067fu, ImmutableString("lessThan(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000260u, ImmutableString("lessThanEqual(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000255u, ImmutableString("lessThanEqual(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000000fu, ImmutableString("lessThanEqual(30B30B").mangledNameHash());
-    ASSERT_EQ(0x0000061fu, ImmutableString("lessThanEqual(10D10D").mangledNameHash());
+    ASSERT_EQ(0x00000620u, ImmutableString("lessThanEqual(10D10D").mangledNameHash());
     ASSERT_EQ(0x000001beu, ImmutableString("lessThanEqual(20D20D").mangledNameHash());
     ASSERT_EQ(0x00000451u, ImmutableString("lessThanEqual(30D30D").mangledNameHash());
     ASSERT_EQ(0x0000015du, ImmutableString("lessThanEqual(10E10E").mangledNameHash());
-    ASSERT_EQ(0x000007d5u, ImmutableString("lessThanEqual(20E20E").mangledNameHash());
+    ASSERT_EQ(0x000007d6u, ImmutableString("lessThanEqual(20E20E").mangledNameHash());
     ASSERT_EQ(0x00000083u, ImmutableString("lessThanEqual(30E30E").mangledNameHash());
     ASSERT_EQ(0x00000428u, ImmutableString("greaterThan(10B10B").mangledNameHash());
-    ASSERT_EQ(0x000007c1u, ImmutableString("greaterThan(20B20B").mangledNameHash());
+    ASSERT_EQ(0x000007c2u, ImmutableString("greaterThan(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000185u, ImmutableString("greaterThan(30B30B").mangledNameHash());
-    ASSERT_EQ(0x000006dbu, ImmutableString("greaterThan(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000006e0u, ImmutableString("greaterThan(20D20D").mangledNameHash());
+    ASSERT_EQ(0x000006dcu, ImmutableString("greaterThan(10D10D").mangledNameHash());
+    ASSERT_EQ(0x000006e1u, ImmutableString("greaterThan(20D20D").mangledNameHash());
     ASSERT_EQ(0x0000008au, ImmutableString("greaterThan(30D30D").mangledNameHash());
     ASSERT_EQ(0x00000213u, ImmutableString("greaterThan(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000103u, ImmutableString("greaterThan(20E20E").mangledNameHash());
     ASSERT_EQ(0x0000011fu, ImmutableString("greaterThan(30E30E").mangledNameHash());
-    ASSERT_EQ(0x000006bbu, ImmutableString("greaterThanEqual(10B10B").mangledNameHash());
+    ASSERT_EQ(0x000006bcu, ImmutableString("greaterThanEqual(10B10B").mangledNameHash());
     ASSERT_EQ(0x0000002cu, ImmutableString("greaterThanEqual(20B20B").mangledNameHash());
     ASSERT_EQ(0x000001aeu, ImmutableString("greaterThanEqual(30B30B").mangledNameHash());
     ASSERT_EQ(0x000000d6u, ImmutableString("greaterThanEqual(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000007bbu, ImmutableString("greaterThanEqual(20D20D").mangledNameHash());
+    ASSERT_EQ(0x000007bcu, ImmutableString("greaterThanEqual(20D20D").mangledNameHash());
     ASSERT_EQ(0x000001e8u, ImmutableString("greaterThanEqual(30D30D").mangledNameHash());
     ASSERT_EQ(0x00000024u, ImmutableString("greaterThanEqual(10E10E").mangledNameHash());
     ASSERT_EQ(0x000002d2u, ImmutableString("greaterThanEqual(20E20E").mangledNameHash());
@@ -552,24 +552,24 @@
     ASSERT_EQ(0x000002fbu, ImmutableString("equal(20B20B").mangledNameHash());
     ASSERT_EQ(0x00000200u, ImmutableString("equal(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000046u, ImmutableString("equal(10D10D").mangledNameHash());
-    ASSERT_EQ(0x000007e3u, ImmutableString("equal(20D20D").mangledNameHash());
+    ASSERT_EQ(0x000007e4u, ImmutableString("equal(20D20D").mangledNameHash());
     ASSERT_EQ(0x0000036du, ImmutableString("equal(30D30D").mangledNameHash());
-    ASSERT_EQ(0x00000633u, ImmutableString("equal(10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000634u, ImmutableString("equal(10E10E").mangledNameHash());
     ASSERT_EQ(0x0000014bu, ImmutableString("equal(20E20E").mangledNameHash());
     ASSERT_EQ(0x0000038fu, ImmutableString("equal(30E30E").mangledNameHash());
     ASSERT_EQ(0x0000051eu, ImmutableString("equal(10F10F").mangledNameHash());
     ASSERT_EQ(0x00000413u, ImmutableString("equal(20F20F").mangledNameHash());
-    ASSERT_EQ(0x000005c4u, ImmutableString("equal(30F30F").mangledNameHash());
-    ASSERT_EQ(0x00000778u, ImmutableString("notEqual(10B10B").mangledNameHash());
+    ASSERT_EQ(0x000005c5u, ImmutableString("equal(30F30F").mangledNameHash());
+    ASSERT_EQ(0x00000779u, ImmutableString("notEqual(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000364u, ImmutableString("notEqual(20B20B").mangledNameHash());
     ASSERT_EQ(0x0000030du, ImmutableString("notEqual(30B30B").mangledNameHash());
     ASSERT_EQ(0x00000396u, ImmutableString("notEqual(10D10D").mangledNameHash());
     ASSERT_EQ(0x00000443u, ImmutableString("notEqual(20D20D").mangledNameHash());
     ASSERT_EQ(0x000004bcu, ImmutableString("notEqual(30D30D").mangledNameHash());
-    ASSERT_EQ(0x0000063bu, ImmutableString("notEqual(10E10E").mangledNameHash());
+    ASSERT_EQ(0x0000063cu, ImmutableString("notEqual(10E10E").mangledNameHash());
     ASSERT_EQ(0x00000556u, ImmutableString("notEqual(20E20E").mangledNameHash());
     ASSERT_EQ(0x0000015cu, ImmutableString("notEqual(30E30E").mangledNameHash());
-    ASSERT_EQ(0x0000060fu, ImmutableString("notEqual(10F10F").mangledNameHash());
+    ASSERT_EQ(0x00000610u, ImmutableString("notEqual(10F10F").mangledNameHash());
     ASSERT_EQ(0x000004b7u, ImmutableString("notEqual(20F20F").mangledNameHash());
     ASSERT_EQ(0x000003beu, ImmutableString("notEqual(30F30F").mangledNameHash());
     ASSERT_EQ(0x0000016bu, ImmutableString("any(10F").mangledNameHash());
@@ -580,23 +580,23 @@
     ASSERT_EQ(0x00000464u, ImmutableString("all(30F").mangledNameHash());
     ASSERT_EQ(0x0000000du, ImmutableString("not(10F").mangledNameHash());
     ASSERT_EQ(0x000000b7u, ImmutableString("not(20F").mangledNameHash());
-    ASSERT_EQ(0x00000817u, ImmutableString("not(30F").mangledNameHash());
-    ASSERT_EQ(0x000005c7u, ImmutableString("bitfieldExtract(00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000818u, ImmutableString("not(30F").mangledNameHash());
+    ASSERT_EQ(0x000005c8u, ImmutableString("bitfieldExtract(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000f1u, ImmutableString("bitfieldExtract(10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000129u, ImmutableString("bitfieldExtract(20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000007e8u, ImmutableString("bitfieldExtract(30D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007e9u, ImmutableString("bitfieldExtract(30D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000572u, ImmutableString("bitfieldExtract(00E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006dcu, ImmutableString("bitfieldExtract(10E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000007dbu, ImmutableString("bitfieldExtract(20E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006ddu, ImmutableString("bitfieldExtract(10E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007dcu, ImmutableString("bitfieldExtract(20E00D00D").mangledNameHash());
     ASSERT_EQ(0x000000d4u, ImmutableString("bitfieldExtract(30E00D00D").mangledNameHash());
     ASSERT_EQ(0x0000023fu, ImmutableString("bitfieldInsert(00D00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000617u, ImmutableString("bitfieldInsert(10D10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000068fu, ImmutableString("bitfieldInsert(20D20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006d9u, ImmutableString("bitfieldInsert(30D30D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006a0u, ImmutableString("bitfieldInsert(00E00E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000005f3u, ImmutableString("bitfieldInsert(10E10E00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000790u, ImmutableString("bitfieldInsert(20E20E00D00D").mangledNameHash());
-    ASSERT_EQ(0x000007dau, ImmutableString("bitfieldInsert(30E30E00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000618u, ImmutableString("bitfieldInsert(10D10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000690u, ImmutableString("bitfieldInsert(20D20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006dau, ImmutableString("bitfieldInsert(30D30D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006a1u, ImmutableString("bitfieldInsert(00E00E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000005f4u, ImmutableString("bitfieldInsert(10E10E00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000791u, ImmutableString("bitfieldInsert(20E20E00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007dbu, ImmutableString("bitfieldInsert(30E30E00D00D").mangledNameHash());
     ASSERT_EQ(0x000000d2u, ImmutableString("bitfieldReverse(00D").mangledNameHash());
     ASSERT_EQ(0x0000017eu, ImmutableString("bitfieldReverse(10D").mangledNameHash());
     ASSERT_EQ(0x0000046au, ImmutableString("bitfieldReverse(20D").mangledNameHash());
@@ -613,51 +613,51 @@
     ASSERT_EQ(0x0000018fu, ImmutableString("bitCount(10E").mangledNameHash());
     ASSERT_EQ(0x0000053bu, ImmutableString("bitCount(20E").mangledNameHash());
     ASSERT_EQ(0x00000480u, ImmutableString("bitCount(30E").mangledNameHash());
-    ASSERT_EQ(0x000005bbu, ImmutableString("findLSB(00D").mangledNameHash());
-    ASSERT_EQ(0x0000074au, ImmutableString("findLSB(10D").mangledNameHash());
-    ASSERT_EQ(0x000006b6u, ImmutableString("findLSB(20D").mangledNameHash());
+    ASSERT_EQ(0x000005bcu, ImmutableString("findLSB(00D").mangledNameHash());
+    ASSERT_EQ(0x0000074bu, ImmutableString("findLSB(10D").mangledNameHash());
+    ASSERT_EQ(0x000006b7u, ImmutableString("findLSB(20D").mangledNameHash());
     ASSERT_EQ(0x0000039cu, ImmutableString("findLSB(30D").mangledNameHash());
-    ASSERT_EQ(0x000007eeu, ImmutableString("findLSB(00E").mangledNameHash());
+    ASSERT_EQ(0x000007efu, ImmutableString("findLSB(00E").mangledNameHash());
     ASSERT_EQ(0x000001eau, ImmutableString("findLSB(10E").mangledNameHash());
-    ASSERT_EQ(0x000006b5u, ImmutableString("findLSB(20E").mangledNameHash());
+    ASSERT_EQ(0x000006b6u, ImmutableString("findLSB(20E").mangledNameHash());
     ASSERT_EQ(0x0000039du, ImmutableString("findLSB(30E").mangledNameHash());
-    ASSERT_EQ(0x0000083fu, ImmutableString("findMSB(00D").mangledNameHash());
+    ASSERT_EQ(0x00000840u, ImmutableString("findMSB(00D").mangledNameHash());
     ASSERT_EQ(0x00000096u, ImmutableString("findMSB(10D").mangledNameHash());
-    ASSERT_EQ(0x00000702u, ImmutableString("findMSB(20D").mangledNameHash());
-    ASSERT_EQ(0x000007b1u, ImmutableString("findMSB(30D").mangledNameHash());
-    ASSERT_EQ(0x00000840u, ImmutableString("findMSB(00E").mangledNameHash());
+    ASSERT_EQ(0x00000703u, ImmutableString("findMSB(20D").mangledNameHash());
+    ASSERT_EQ(0x000007b2u, ImmutableString("findMSB(30D").mangledNameHash());
+    ASSERT_EQ(0x00000841u, ImmutableString("findMSB(00E").mangledNameHash());
     ASSERT_EQ(0x00000095u, ImmutableString("findMSB(10E").mangledNameHash());
     ASSERT_EQ(0x0000000eu, ImmutableString("findMSB(20E").mangledNameHash());
-    ASSERT_EQ(0x000007b0u, ImmutableString("findMSB(30E").mangledNameHash());
+    ASSERT_EQ(0x000007b1u, ImmutableString("findMSB(30E").mangledNameHash());
     ASSERT_EQ(0x0000014cu, ImmutableString("uaddCarry(00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000625u, ImmutableString("uaddCarry(10E10E10E").mangledNameHash());
+    ASSERT_EQ(0x00000626u, ImmutableString("uaddCarry(10E10E10E").mangledNameHash());
     ASSERT_EQ(0x00000227u, ImmutableString("uaddCarry(20E20E20E").mangledNameHash());
     ASSERT_EQ(0x00000540u, ImmutableString("uaddCarry(30E30E30E").mangledNameHash());
     ASSERT_EQ(0x0000055du, ImmutableString("usubBorrow(00E00E00E").mangledNameHash());
     ASSERT_EQ(0x00000416u, ImmutableString("usubBorrow(10E10E10E").mangledNameHash());
     ASSERT_EQ(0x000004e7u, ImmutableString("usubBorrow(20E20E20E").mangledNameHash());
-    ASSERT_EQ(0x000005adu, ImmutableString("usubBorrow(30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000808u, ImmutableString("umulExtended(00E00E00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000058cu, ImmutableString("umulExtended(10E10E10E10E").mangledNameHash());
+    ASSERT_EQ(0x000005aeu, ImmutableString("usubBorrow(30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x00000809u, ImmutableString("umulExtended(00E00E00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000058du, ImmutableString("umulExtended(10E10E10E10E").mangledNameHash());
     ASSERT_EQ(0x0000019fu, ImmutableString("umulExtended(20E20E20E20E").mangledNameHash());
-    ASSERT_EQ(0x00000590u, ImmutableString("umulExtended(30E30E30E30E").mangledNameHash());
-    ASSERT_EQ(0x00000681u, ImmutableString("imulExtended(00D00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000591u, ImmutableString("umulExtended(30E30E30E30E").mangledNameHash());
+    ASSERT_EQ(0x00000682u, ImmutableString("imulExtended(00D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000035du, ImmutableString("imulExtended(10D10D10D10D").mangledNameHash());
     ASSERT_EQ(0x000004d1u, ImmutableString("imulExtended(20D20D20D20D").mangledNameHash());
-    ASSERT_EQ(0x0000067fu, ImmutableString("imulExtended(30D30D30D30D").mangledNameHash());
+    ASSERT_EQ(0x00000680u, ImmutableString("imulExtended(30D30D30D30D").mangledNameHash());
     ASSERT_EQ(0x0000028du, ImmutableString("texture2D(00I10B").mangledNameHash());
     ASSERT_EQ(0x00000004u, ImmutableString("texture2DProj(00I20B").mangledNameHash());
     ASSERT_EQ(0x00000361u, ImmutableString("texture2DProj(00I30B").mangledNameHash());
     ASSERT_EQ(0x0000014eu, ImmutableString("textureCube(00K20B").mangledNameHash());
     ASSERT_EQ(0x00000385u, ImmutableString("texture1D(00g00B").mangledNameHash());
-    ASSERT_EQ(0x0000067du, ImmutableString("texture1DProj(00g10B").mangledNameHash());
+    ASSERT_EQ(0x0000067eu, ImmutableString("texture1DProj(00g10B").mangledNameHash());
     ASSERT_EQ(0x00000524u, ImmutableString("texture1DProj(00g30B").mangledNameHash());
-    ASSERT_EQ(0x0000074du, ImmutableString("texture3D(00J20B").mangledNameHash());
-    ASSERT_EQ(0x000005b3u, ImmutableString("texture3DProj(00J30B").mangledNameHash());
-    ASSERT_EQ(0x00000801u, ImmutableString("shadow1D(00m20B").mangledNameHash());
-    ASSERT_EQ(0x00000833u, ImmutableString("shadow1DProj(00m30B").mangledNameHash());
+    ASSERT_EQ(0x0000074eu, ImmutableString("texture3D(00J20B").mangledNameHash());
+    ASSERT_EQ(0x000005b4u, ImmutableString("texture3DProj(00J30B").mangledNameHash());
+    ASSERT_EQ(0x00000802u, ImmutableString("shadow1D(00m20B").mangledNameHash());
+    ASSERT_EQ(0x00000834u, ImmutableString("shadow1DProj(00m30B").mangledNameHash());
     ASSERT_EQ(0x0000039fu, ImmutableString("shadow2D(00d20B").mangledNameHash());
-    ASSERT_EQ(0x00000651u, ImmutableString("shadow2DProj(00d30B").mangledNameHash());
+    ASSERT_EQ(0x00000652u, ImmutableString("shadow2DProj(00d30B").mangledNameHash());
     ASSERT_EQ(0x000003fcu, ImmutableString("texture2D(00M10B").mangledNameHash());
     ASSERT_EQ(0x00000395u, ImmutableString("texture2DProj(00M20B").mangledNameHash());
     ASSERT_EQ(0x00000453u, ImmutableString("texture2DProj(00M30B").mangledNameHash());
@@ -670,68 +670,68 @@
     ASSERT_EQ(0x0000026fu, ImmutableString("texture2DGradEXT(00I10B10B10B").mangledNameHash());
     ASSERT_EQ(0x000003ceu, ImmutableString("texture2DProjGradEXT(00I20B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000272u, ImmutableString("texture2DProjGradEXT(00I30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000075fu, ImmutableString("textureCubeGradEXT(00K20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000006dfu, ImmutableString("texture2D(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000760u, ImmutableString("textureCubeGradEXT(00K20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000006e0u, ImmutableString("texture2D(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x000000fdu, ImmutableString("texture2DProj(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000075cu, ImmutableString("texture2DProj(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x0000075du, ImmutableString("texture2DProj(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x000001b5u, ImmutableString("textureCube(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000004dcu, ImmutableString("texture3D(00J20B00B").mangledNameHash());
-    ASSERT_EQ(0x000005a6u, ImmutableString("texture3DProj(00J30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005a7u, ImmutableString("texture3DProj(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x00000440u, ImmutableString("texture3DLod(00J20B00B").mangledNameHash());
     ASSERT_EQ(0x000002d4u, ImmutableString("texture3DProjLod(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x00000532u, ImmutableString("texture1D(00g00B00B").mangledNameHash());
     ASSERT_EQ(0x000001f8u, ImmutableString("texture1DProj(00g10B00B").mangledNameHash());
-    ASSERT_EQ(0x000005dau, ImmutableString("texture1DProj(00g30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005dbu, ImmutableString("texture1DProj(00g30B00B").mangledNameHash());
     ASSERT_EQ(0x000000adu, ImmutableString("shadow1D(00m20B00B").mangledNameHash());
     ASSERT_EQ(0x000004e9u, ImmutableString("shadow1DProj(00m30B00B").mangledNameHash());
     ASSERT_EQ(0x0000022bu, ImmutableString("shadow2D(00d20B00B").mangledNameHash());
-    ASSERT_EQ(0x000007f1u, ImmutableString("shadow2DProj(00d30B00B").mangledNameHash());
-    ASSERT_EQ(0x000005bau, ImmutableString("dFdx(00B").mangledNameHash());
+    ASSERT_EQ(0x000007f2u, ImmutableString("shadow2DProj(00d30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005bbu, ImmutableString("dFdx(00B").mangledNameHash());
     ASSERT_EQ(0x00000521u, ImmutableString("dFdx(10B").mangledNameHash());
-    ASSERT_EQ(0x000006fdu, ImmutableString("dFdx(20B").mangledNameHash());
-    ASSERT_EQ(0x00000670u, ImmutableString("dFdx(30B").mangledNameHash());
-    ASSERT_EQ(0x0000067bu, ImmutableString("dFdy(00B").mangledNameHash());
-    ASSERT_EQ(0x00000713u, ImmutableString("dFdy(10B").mangledNameHash());
+    ASSERT_EQ(0x000006feu, ImmutableString("dFdx(20B").mangledNameHash());
+    ASSERT_EQ(0x00000671u, ImmutableString("dFdx(30B").mangledNameHash());
+    ASSERT_EQ(0x0000067cu, ImmutableString("dFdy(00B").mangledNameHash());
+    ASSERT_EQ(0x00000714u, ImmutableString("dFdy(10B").mangledNameHash());
     ASSERT_EQ(0x000000f6u, ImmutableString("dFdy(20B").mangledNameHash());
     ASSERT_EQ(0x000001a8u, ImmutableString("dFdy(30B").mangledNameHash());
-    ASSERT_EQ(0x00000712u, ImmutableString("fwidth(00B").mangledNameHash());
-    ASSERT_EQ(0x0000067au, ImmutableString("fwidth(10B").mangledNameHash());
-    ASSERT_EQ(0x00000847u, ImmutableString("fwidth(20B").mangledNameHash());
-    ASSERT_EQ(0x000007b3u, ImmutableString("fwidth(30B").mangledNameHash());
-    ASSERT_EQ(0x00000742u, ImmutableString("texture2DLodEXT(00I10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000713u, ImmutableString("fwidth(00B").mangledNameHash());
+    ASSERT_EQ(0x0000067bu, ImmutableString("fwidth(10B").mangledNameHash());
+    ASSERT_EQ(0x00000848u, ImmutableString("fwidth(20B").mangledNameHash());
+    ASSERT_EQ(0x000007b4u, ImmutableString("fwidth(30B").mangledNameHash());
+    ASSERT_EQ(0x00000743u, ImmutableString("texture2DLodEXT(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x000001afu, ImmutableString("texture2DProjLodEXT(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000073du, ImmutableString("texture2DProjLodEXT(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x0000073eu, ImmutableString("texture2DProjLodEXT(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000400u, ImmutableString("textureCubeLodEXT(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x00000389u, ImmutableString("texture2DLod(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000458u, ImmutableString("texture2DProjLod(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x000005eeu, ImmutableString("texture2DProjLod(00I30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005efu, ImmutableString("texture2DProjLod(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x000001a3u, ImmutableString("textureCubeLod(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000004ddu, ImmutableString("texture1DLod(00g00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000679u, ImmutableString("texture1DProjLod(00g10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000067au, ImmutableString("texture1DProjLod(00g10B00B").mangledNameHash());
     ASSERT_EQ(0x00000502u, ImmutableString("texture1DProjLod(00g30B00B").mangledNameHash());
     ASSERT_EQ(0x0000044cu, ImmutableString("shadow1DLod(00m20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000642u, ImmutableString("shadow1DProjLod(00m30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000067cu, ImmutableString("shadow2DLod(00d20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000069au, ImmutableString("shadow2DProjLod(00d30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000643u, ImmutableString("shadow1DProjLod(00m30B00B").mangledNameHash());
+    ASSERT_EQ(0x0000067du, ImmutableString("shadow2DLod(00d20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000069bu, ImmutableString("shadow2DProjLod(00d30B00B").mangledNameHash());
     ASSERT_EQ(0x00000113u, ImmutableString("texture(00I10B").mangledNameHash());
     ASSERT_EQ(0x00000174u, ImmutableString("texture(00R10B").mangledNameHash());
-    ASSERT_EQ(0x000007a3u, ImmutableString("texture(00X10B").mangledNameHash());
-    ASSERT_EQ(0x0000061eu, ImmutableString("texture(00J20B").mangledNameHash());
+    ASSERT_EQ(0x000007a4u, ImmutableString("texture(00X10B").mangledNameHash());
+    ASSERT_EQ(0x0000061fu, ImmutableString("texture(00J20B").mangledNameHash());
     ASSERT_EQ(0x000000eau, ImmutableString("texture(00S20B").mangledNameHash());
     ASSERT_EQ(0x00000289u, ImmutableString("texture(00Y20B").mangledNameHash());
-    ASSERT_EQ(0x00000813u, ImmutableString("texture(00K20B").mangledNameHash());
-    ASSERT_EQ(0x000006b1u, ImmutableString("texture(00T20B").mangledNameHash());
-    ASSERT_EQ(0x00000811u, ImmutableString("texture(00Z20B").mangledNameHash());
-    ASSERT_EQ(0x000006feu, ImmutableString("texture(00L20B").mangledNameHash());
+    ASSERT_EQ(0x00000814u, ImmutableString("texture(00K20B").mangledNameHash());
+    ASSERT_EQ(0x000006b2u, ImmutableString("texture(00T20B").mangledNameHash());
+    ASSERT_EQ(0x00000812u, ImmutableString("texture(00Z20B").mangledNameHash());
+    ASSERT_EQ(0x000006ffu, ImmutableString("texture(00L20B").mangledNameHash());
     ASSERT_EQ(0x0000008bu, ImmutableString("texture(00U20B").mangledNameHash());
-    ASSERT_EQ(0x0000080bu, ImmutableString("texture(00a20B").mangledNameHash());
+    ASSERT_EQ(0x0000080cu, ImmutableString("texture(00a20B").mangledNameHash());
     ASSERT_EQ(0x00000025u, ImmutableString("texture(00d20B").mangledNameHash());
     ASSERT_EQ(0x000001f0u, ImmutableString("texture(00e30B").mangledNameHash());
     ASSERT_EQ(0x000001ddu, ImmutableString("texture(00f30B").mangledNameHash());
-    ASSERT_EQ(0x00000824u, ImmutableString("texture(00g00B").mangledNameHash());
+    ASSERT_EQ(0x00000825u, ImmutableString("texture(00g00B").mangledNameHash());
     ASSERT_EQ(0x00000253u, ImmutableString("texture(00o00B").mangledNameHash());
     ASSERT_EQ(0x00000098u, ImmutableString("texture(00t00B").mangledNameHash());
-    ASSERT_EQ(0x00000815u, ImmutableString("texture(00m20B").mangledNameHash());
+    ASSERT_EQ(0x00000816u, ImmutableString("texture(00m20B").mangledNameHash());
     ASSERT_EQ(0x000000c0u, ImmutableString("texture(00h20B").mangledNameHash());
     ASSERT_EQ(0x000000e8u, ImmutableString("texture(00p20B").mangledNameHash());
     ASSERT_EQ(0x00000470u, ImmutableString("texture(00u20B").mangledNameHash());
@@ -739,66 +739,66 @@
     ASSERT_EQ(0x000003e0u, ImmutableString("texture(00q10B").mangledNameHash());
     ASSERT_EQ(0x00000563u, ImmutableString("texture(00v10B").mangledNameHash());
     ASSERT_EQ(0x00000239u, ImmutableString("texture(00n20B").mangledNameHash());
-    ASSERT_EQ(0x00000678u, ImmutableString("texture(00l30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000679u, ImmutableString("texture(00l30B00B").mangledNameHash());
     ASSERT_EQ(0x00000267u, ImmutableString("textureProj(00I20B").mangledNameHash());
     ASSERT_EQ(0x00000212u, ImmutableString("textureProj(00R20B").mangledNameHash());
     ASSERT_EQ(0x000002cfu, ImmutableString("textureProj(00X20B").mangledNameHash());
     ASSERT_EQ(0x00000301u, ImmutableString("textureProj(00I30B").mangledNameHash());
-    ASSERT_EQ(0x00000832u, ImmutableString("textureProj(00R30B").mangledNameHash());
-    ASSERT_EQ(0x0000083eu, ImmutableString("textureProj(00X30B").mangledNameHash());
+    ASSERT_EQ(0x00000833u, ImmutableString("textureProj(00R30B").mangledNameHash());
+    ASSERT_EQ(0x0000083fu, ImmutableString("textureProj(00X30B").mangledNameHash());
     ASSERT_EQ(0x000002e1u, ImmutableString("textureProj(00J30B").mangledNameHash());
     ASSERT_EQ(0x000001a7u, ImmutableString("textureProj(00S30B").mangledNameHash());
     ASSERT_EQ(0x000000f7u, ImmutableString("textureProj(00Y30B").mangledNameHash());
-    ASSERT_EQ(0x000007ffu, ImmutableString("textureProj(00d30B").mangledNameHash());
+    ASSERT_EQ(0x00000800u, ImmutableString("textureProj(00d30B").mangledNameHash());
     ASSERT_EQ(0x000002fau, ImmutableString("textureProj(00g10B").mangledNameHash());
-    ASSERT_EQ(0x00000656u, ImmutableString("textureProj(00o10B").mangledNameHash());
+    ASSERT_EQ(0x00000657u, ImmutableString("textureProj(00o10B").mangledNameHash());
     ASSERT_EQ(0x00000064u, ImmutableString("textureProj(00t10B").mangledNameHash());
-    ASSERT_EQ(0x000007d8u, ImmutableString("textureProj(00g30B").mangledNameHash());
+    ASSERT_EQ(0x000007d9u, ImmutableString("textureProj(00g30B").mangledNameHash());
     ASSERT_EQ(0x00000127u, ImmutableString("textureProj(00o30B").mangledNameHash());
-    ASSERT_EQ(0x00000772u, ImmutableString("textureProj(00t30B").mangledNameHash());
+    ASSERT_EQ(0x00000773u, ImmutableString("textureProj(00t30B").mangledNameHash());
     ASSERT_EQ(0x00000102u, ImmutableString("textureProj(00m30B").mangledNameHash());
     ASSERT_EQ(0x00000515u, ImmutableString("textureProj(00q20B").mangledNameHash());
-    ASSERT_EQ(0x000006abu, ImmutableString("textureProj(00v20B").mangledNameHash());
-    ASSERT_EQ(0x000005abu, ImmutableString("textureProj(00q30B").mangledNameHash());
-    ASSERT_EQ(0x00000608u, ImmutableString("textureProj(00v30B").mangledNameHash());
+    ASSERT_EQ(0x000006acu, ImmutableString("textureProj(00v20B").mangledNameHash());
+    ASSERT_EQ(0x000005acu, ImmutableString("textureProj(00q30B").mangledNameHash());
+    ASSERT_EQ(0x00000609u, ImmutableString("textureProj(00v30B").mangledNameHash());
     ASSERT_EQ(0x000000e6u, ImmutableString("textureProj(00n30B").mangledNameHash());
     ASSERT_EQ(0x000000d5u, ImmutableString("textureLod(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000383u, ImmutableString("textureLod(00R10B00B").mangledNameHash());
     ASSERT_EQ(0x000000c6u, ImmutableString("textureLod(00X10B00B").mangledNameHash());
     ASSERT_EQ(0x000004a7u, ImmutableString("textureLod(00J20B00B").mangledNameHash());
     ASSERT_EQ(0x000003d0u, ImmutableString("textureLod(00S20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000686u, ImmutableString("textureLod(00Y20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000687u, ImmutableString("textureLod(00Y20B00B").mangledNameHash());
     ASSERT_EQ(0x00000539u, ImmutableString("textureLod(00K20B00B").mangledNameHash());
-    ASSERT_EQ(0x000006edu, ImmutableString("textureLod(00T20B00B").mangledNameHash());
-    ASSERT_EQ(0x000005cau, ImmutableString("textureLod(00Z20B00B").mangledNameHash());
+    ASSERT_EQ(0x000006eeu, ImmutableString("textureLod(00T20B00B").mangledNameHash());
+    ASSERT_EQ(0x000005cbu, ImmutableString("textureLod(00Z20B00B").mangledNameHash());
     ASSERT_EQ(0x00000233u, ImmutableString("textureLod(00L20B00B").mangledNameHash());
     ASSERT_EQ(0x00000202u, ImmutableString("textureLod(00U20B00B").mangledNameHash());
     ASSERT_EQ(0x0000036au, ImmutableString("textureLod(00a20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000717u, ImmutableString("textureLod(00d20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000577u, ImmutableString("textureLod(00g00B00B").mangledNameHash());
-    ASSERT_EQ(0x000007cdu, ImmutableString("textureLod(00o00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000718u, ImmutableString("textureLod(00d20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000578u, ImmutableString("textureLod(00g00B00B").mangledNameHash());
+    ASSERT_EQ(0x000007ceu, ImmutableString("textureLod(00o00B00B").mangledNameHash());
     ASSERT_EQ(0x00000011u, ImmutableString("textureLod(00t00B00B").mangledNameHash());
     ASSERT_EQ(0x00000338u, ImmutableString("textureLod(00m20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000729u, ImmutableString("textureLod(00h10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000072au, ImmutableString("textureLod(00h10B00B").mangledNameHash());
     ASSERT_EQ(0x00000206u, ImmutableString("textureLod(00p10B00B").mangledNameHash());
     ASSERT_EQ(0x0000056cu, ImmutableString("textureLod(00u10B00B").mangledNameHash());
     ASSERT_EQ(0x00000160u, ImmutableString("textureLod(00i20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000722u, ImmutableString("textureLod(00k30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000723u, ImmutableString("textureLod(00k30B00B").mangledNameHash());
     ASSERT_EQ(0x00000309u, ImmutableString("textureLod(00s30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000785u, ImmutableString("textureLod(00x30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000786u, ImmutableString("textureLod(00x30B00B").mangledNameHash());
     ASSERT_EQ(0x000004abu, ImmutableString("textureSize(00I00D").mangledNameHash());
-    ASSERT_EQ(0x000006c5u, ImmutableString("textureSize(00R00D").mangledNameHash());
+    ASSERT_EQ(0x000006c6u, ImmutableString("textureSize(00R00D").mangledNameHash());
     ASSERT_EQ(0x00000427u, ImmutableString("textureSize(00X00D").mangledNameHash());
-    ASSERT_EQ(0x00000737u, ImmutableString("textureSize(00J00D").mangledNameHash());
+    ASSERT_EQ(0x00000738u, ImmutableString("textureSize(00J00D").mangledNameHash());
     ASSERT_EQ(0x000001d7u, ImmutableString("textureSize(00S00D").mangledNameHash());
     ASSERT_EQ(0x0000055bu, ImmutableString("textureSize(00Y00D").mangledNameHash());
     ASSERT_EQ(0x00000020u, ImmutableString("textureSize(00K00D").mangledNameHash());
     ASSERT_EQ(0x000001f2u, ImmutableString("textureSize(00T00D").mangledNameHash());
-    ASSERT_EQ(0x000007e7u, ImmutableString("textureSize(00Z00D").mangledNameHash());
+    ASSERT_EQ(0x000007e8u, ImmutableString("textureSize(00Z00D").mangledNameHash());
     ASSERT_EQ(0x000001a4u, ImmutableString("textureSize(00L00D").mangledNameHash());
     ASSERT_EQ(0x00000541u, ImmutableString("textureSize(00U00D").mangledNameHash());
     ASSERT_EQ(0x000001cfu, ImmutableString("textureSize(00a00D").mangledNameHash());
-    ASSERT_EQ(0x00000622u, ImmutableString("textureSize(00d00D").mangledNameHash());
+    ASSERT_EQ(0x00000623u, ImmutableString("textureSize(00d00D").mangledNameHash());
     ASSERT_EQ(0x0000010bu, ImmutableString("textureSize(00e00D").mangledNameHash());
     ASSERT_EQ(0x000001b8u, ImmutableString("textureSize(00f00D").mangledNameHash());
     ASSERT_EQ(0x000004feu, ImmutableString("textureSize(00g00D").mangledNameHash());
@@ -806,93 +806,93 @@
     ASSERT_EQ(0x000001dbu, ImmutableString("textureSize(00t00D").mangledNameHash());
     ASSERT_EQ(0x000002bau, ImmutableString("textureSize(00m00D").mangledNameHash());
     ASSERT_EQ(0x0000051au, ImmutableString("textureSize(00k00D").mangledNameHash());
-    ASSERT_EQ(0x00000665u, ImmutableString("textureSize(00s00D").mangledNameHash());
+    ASSERT_EQ(0x00000666u, ImmutableString("textureSize(00s00D").mangledNameHash());
     ASSERT_EQ(0x00000188u, ImmutableString("textureSize(00x00D").mangledNameHash());
-    ASSERT_EQ(0x000007ccu, ImmutableString("textureSize(00l00D").mangledNameHash());
-    ASSERT_EQ(0x00000792u, ImmutableString("textureSize(00O").mangledNameHash());
-    ASSERT_EQ(0x0000078cu, ImmutableString("textureSize(00q").mangledNameHash());
-    ASSERT_EQ(0x0000078fu, ImmutableString("textureSize(00v").mangledNameHash());
-    ASSERT_EQ(0x00000787u, ImmutableString("textureSize(00n").mangledNameHash());
+    ASSERT_EQ(0x000007cdu, ImmutableString("textureSize(00l00D").mangledNameHash());
+    ASSERT_EQ(0x00000793u, ImmutableString("textureSize(00O").mangledNameHash());
+    ASSERT_EQ(0x0000078du, ImmutableString("textureSize(00q").mangledNameHash());
+    ASSERT_EQ(0x00000790u, ImmutableString("textureSize(00v").mangledNameHash());
+    ASSERT_EQ(0x00000788u, ImmutableString("textureSize(00n").mangledNameHash());
     ASSERT_EQ(0x00000021u, ImmutableString("textureSize(00h00D").mangledNameHash());
     ASSERT_EQ(0x00000033u, ImmutableString("textureSize(00p00D").mangledNameHash());
     ASSERT_EQ(0x000001f4u, ImmutableString("textureSize(00u00D").mangledNameHash());
     ASSERT_EQ(0x0000014au, ImmutableString("textureSize(00i00D").mangledNameHash());
-    ASSERT_EQ(0x00000786u, ImmutableString("textureSize(00j").mangledNameHash());
-    ASSERT_EQ(0x0000078du, ImmutableString("textureSize(00r").mangledNameHash());
-    ASSERT_EQ(0x0000078eu, ImmutableString("textureSize(00w").mangledNameHash());
-    ASSERT_EQ(0x000006adu, ImmutableString("textureProjLod(00I20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000787u, ImmutableString("textureSize(00j").mangledNameHash());
+    ASSERT_EQ(0x0000078eu, ImmutableString("textureSize(00r").mangledNameHash());
+    ASSERT_EQ(0x0000078fu, ImmutableString("textureSize(00w").mangledNameHash());
+    ASSERT_EQ(0x000006aeu, ImmutableString("textureProjLod(00I20B00B").mangledNameHash());
     ASSERT_EQ(0x000004bbu, ImmutableString("textureProjLod(00R20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000079cu, ImmutableString("textureProjLod(00X20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000079du, ImmutableString("textureProjLod(00X20B00B").mangledNameHash());
     ASSERT_EQ(0x00000104u, ImmutableString("textureProjLod(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000334u, ImmutableString("textureProjLod(00R30B00B").mangledNameHash());
-    ASSERT_EQ(0x000005a8u, ImmutableString("textureProjLod(00X30B00B").mangledNameHash());
-    ASSERT_EQ(0x000006cdu, ImmutableString("textureProjLod(00J30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005a9u, ImmutableString("textureProjLod(00X30B00B").mangledNameHash());
+    ASSERT_EQ(0x000006ceu, ImmutableString("textureProjLod(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x000003f2u, ImmutableString("textureProjLod(00S30B00B").mangledNameHash());
     ASSERT_EQ(0x000001c0u, ImmutableString("textureProjLod(00Y30B00B").mangledNameHash());
     ASSERT_EQ(0x000002abu, ImmutableString("textureProjLod(00d30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000081eu, ImmutableString("textureProjLod(00g10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000081fu, ImmutableString("textureProjLod(00g10B00B").mangledNameHash());
     ASSERT_EQ(0x0000018bu, ImmutableString("textureProjLod(00o10B00B").mangledNameHash());
     ASSERT_EQ(0x00000516u, ImmutableString("textureProjLod(00t10B00B").mangledNameHash());
     ASSERT_EQ(0x0000050au, ImmutableString("textureProjLod(00g30B00B").mangledNameHash());
-    ASSERT_EQ(0x000006fau, ImmutableString("textureProjLod(00o30B00B").mangledNameHash());
-    ASSERT_EQ(0x000005deu, ImmutableString("textureProjLod(00t30B00B").mangledNameHash());
+    ASSERT_EQ(0x000006fbu, ImmutableString("textureProjLod(00o30B00B").mangledNameHash());
+    ASSERT_EQ(0x000005dfu, ImmutableString("textureProjLod(00t30B00B").mangledNameHash());
     ASSERT_EQ(0x0000040au, ImmutableString("textureProjLod(00m30B00B").mangledNameHash());
     ASSERT_EQ(0x0000004eu, ImmutableString("texelFetch(00I10D00D").mangledNameHash());
     ASSERT_EQ(0x000001dfu, ImmutableString("texelFetch(00R10D00D").mangledNameHash());
     ASSERT_EQ(0x000003bdu, ImmutableString("texelFetch(00X10D00D").mangledNameHash());
     ASSERT_EQ(0x0000021au, ImmutableString("texelFetch(00J20D00D").mangledNameHash());
-    ASSERT_EQ(0x000007b5u, ImmutableString("texelFetch(00S20D00D").mangledNameHash());
+    ASSERT_EQ(0x000007b6u, ImmutableString("texelFetch(00S20D00D").mangledNameHash());
     ASSERT_EQ(0x000000ecu, ImmutableString("texelFetch(00Y20D00D").mangledNameHash());
     ASSERT_EQ(0x0000053cu, ImmutableString("texelFetch(00L20D00D").mangledNameHash());
     ASSERT_EQ(0x000002e8u, ImmutableString("texelFetch(00U20D00D").mangledNameHash());
     ASSERT_EQ(0x0000010cu, ImmutableString("texelFetch(00a20D00D").mangledNameHash());
-    ASSERT_EQ(0x000005f1u, ImmutableString("texelFetch(00g00D00D").mangledNameHash());
+    ASSERT_EQ(0x000005f2u, ImmutableString("texelFetch(00g00D00D").mangledNameHash());
     ASSERT_EQ(0x00000006u, ImmutableString("texelFetch(00o00D00D").mangledNameHash());
     ASSERT_EQ(0x00000325u, ImmutableString("texelFetch(00t00D00D").mangledNameHash());
-    ASSERT_EQ(0x000007a7u, ImmutableString("texelFetch(00O10D").mangledNameHash());
+    ASSERT_EQ(0x000007a8u, ImmutableString("texelFetch(00O10D").mangledNameHash());
     ASSERT_EQ(0x00000336u, ImmutableString("texelFetch(00q10D").mangledNameHash());
     ASSERT_EQ(0x000001efu, ImmutableString("texelFetch(00v10D").mangledNameHash());
-    ASSERT_EQ(0x0000069eu, ImmutableString("texelFetch(00h10D00D").mangledNameHash());
-    ASSERT_EQ(0x000007efu, ImmutableString("texelFetch(00p10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000064au, ImmutableString("texelFetch(00u10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000069fu, ImmutableString("texelFetch(00h10D00D").mangledNameHash());
+    ASSERT_EQ(0x000007f0u, ImmutableString("texelFetch(00p10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000064bu, ImmutableString("texelFetch(00u10D00D").mangledNameHash());
     ASSERT_EQ(0x00000078u, ImmutableString("texelFetch(00j00D").mangledNameHash());
-    ASSERT_EQ(0x000005bfu, ImmutableString("texelFetch(00r00D").mangledNameHash());
+    ASSERT_EQ(0x000005c0u, ImmutableString("texelFetch(00r00D").mangledNameHash());
     ASSERT_EQ(0x0000015au, ImmutableString("texelFetch(00w00D").mangledNameHash());
     ASSERT_EQ(0x00000456u, ImmutableString("textureGrad(00I10B10B10B").mangledNameHash());
     ASSERT_EQ(0x000001e2u, ImmutableString("textureGrad(00R10B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000166u, ImmutableString("textureGrad(00X10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000745u, ImmutableString("textureGrad(00J20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000006f4u, ImmutableString("textureGrad(00S20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x00000746u, ImmutableString("textureGrad(00J20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000006f5u, ImmutableString("textureGrad(00S20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000002cbu, ImmutableString("textureGrad(00Y20B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000007b4u, ImmutableString("textureGrad(00K20B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000007b5u, ImmutableString("textureGrad(00K20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000001f7u, ImmutableString("textureGrad(00T20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000000d0u, ImmutableString("textureGrad(00Z20B20B20B").mangledNameHash());
     ASSERT_EQ(0x000002cau, ImmutableString("textureGrad(00I00B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000423u, ImmutableString("textureGrad(00R00B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000070u, ImmutableString("textureGrad(00X00B00B00B").mangledNameHash());
     ASSERT_EQ(0x000004a9u, ImmutableString("textureGrad(00O10B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000005b8u, ImmutableString("textureGrad(00q10B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000005b9u, ImmutableString("textureGrad(00q10B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000073u, ImmutableString("textureGrad(00v10B10B10B").mangledNameHash());
     ASSERT_EQ(0x000002eeu, ImmutableString("textureGrad(00n20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000006a5u, ImmutableString("textureGrad(00d20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000736u, ImmutableString("textureGrad(00e30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000006a6u, ImmutableString("textureGrad(00d20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x00000737u, ImmutableString("textureGrad(00e30B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000485u, ImmutableString("textureGrad(00L20B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000341u, ImmutableString("textureGrad(00U20B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000317u, ImmutableString("textureGrad(00a20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x00000594u, ImmutableString("textureGrad(00f30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000006d7u, ImmutableString("textureGrad(00m20B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000005d8u, ImmutableString("textureGrad(00h10B00B00B").mangledNameHash());
-    ASSERT_EQ(0x000007bfu, ImmutableString("textureGrad(00p10B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000595u, ImmutableString("textureGrad(00f30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000006d8u, ImmutableString("textureGrad(00m20B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000005d9u, ImmutableString("textureGrad(00h10B00B00B").mangledNameHash());
+    ASSERT_EQ(0x000007c0u, ImmutableString("textureGrad(00p10B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000496u, ImmutableString("textureGrad(00u10B00B00B").mangledNameHash());
     ASSERT_EQ(0x000002f9u, ImmutableString("textureGrad(00i20B00B00B").mangledNameHash());
-    ASSERT_EQ(0x0000057du, ImmutableString("textureGrad(00k30B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000007acu, ImmutableString("textureGrad(00s30B20B20B").mangledNameHash());
-    ASSERT_EQ(0x000006f8u, ImmutableString("textureGrad(00x30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x0000057eu, ImmutableString("textureGrad(00k30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000007adu, ImmutableString("textureGrad(00s30B20B20B").mangledNameHash());
+    ASSERT_EQ(0x000006f9u, ImmutableString("textureGrad(00x30B20B20B").mangledNameHash());
     ASSERT_EQ(0x000003f9u, ImmutableString("textureProjGrad(00I20B10B10B").mangledNameHash());
     ASSERT_EQ(0x000003f3u, ImmutableString("textureProjGrad(00R20B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000559u, ImmutableString("textureProjGrad(00X20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000066du, ImmutableString("textureProjGrad(00I30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000006eeu, ImmutableString("textureProjGrad(00R30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000066eu, ImmutableString("textureProjGrad(00I30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000006efu, ImmutableString("textureProjGrad(00R30B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000228u, ImmutableString("textureProjGrad(00X30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000000c3u, ImmutableString("textureProjGrad(00J30B20B20B").mangledNameHash());
     ASSERT_EQ(0x00000045u, ImmutableString("textureProjGrad(00S30B20B20B").mangledNameHash());
@@ -900,18 +900,18 @@
     ASSERT_EQ(0x00000322u, ImmutableString("textureProjGrad(00d30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000002d8u, ImmutableString("textureProjGrad(00g10B00B00B").mangledNameHash());
     ASSERT_EQ(0x0000035eu, ImmutableString("textureProjGrad(00o10B00B00B").mangledNameHash());
-    ASSERT_EQ(0x0000063du, ImmutableString("textureProjGrad(00t10B00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000650u, ImmutableString("textureProjGrad(00g30B00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000063eu, ImmutableString("textureProjGrad(00t10B00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000651u, ImmutableString("textureProjGrad(00g30B00B00B").mangledNameHash());
     ASSERT_EQ(0x00000489u, ImmutableString("textureProjGrad(00o30B00B00B").mangledNameHash());
     ASSERT_EQ(0x000000b2u, ImmutableString("textureProjGrad(00t30B00B00B").mangledNameHash());
     ASSERT_EQ(0x000004a4u, ImmutableString("textureProjGrad(00m30B00B00B").mangledNameHash());
-    ASSERT_EQ(0x00000609u, ImmutableString("textureProjGrad(00O20B10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000060au, ImmutableString("textureProjGrad(00O20B10B10B").mangledNameHash());
     ASSERT_EQ(0x00000372u, ImmutableString("textureProjGrad(00q20B10B10B").mangledNameHash());
     ASSERT_EQ(0x000003f1u, ImmutableString("textureProjGrad(00v20B10B10B").mangledNameHash());
-    ASSERT_EQ(0x000007f7u, ImmutableString("textureProjGrad(00O30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x000007f8u, ImmutableString("textureProjGrad(00O30B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000022fu, ImmutableString("textureProjGrad(00q30B10B10B").mangledNameHash());
     ASSERT_EQ(0x0000033au, ImmutableString("textureProjGrad(00v30B10B10B").mangledNameHash());
-    ASSERT_EQ(0x0000073au, ImmutableString("textureProjGrad(00n30B10B10B").mangledNameHash());
+    ASSERT_EQ(0x0000073bu, ImmutableString("textureProjGrad(00n30B10B10B").mangledNameHash());
     ASSERT_EQ(0x000004c9u, ImmutableString("textureQueryLevels(00g").mangledNameHash());
     ASSERT_EQ(0x000004c2u, ImmutableString("textureQueryLevels(00o").mangledNameHash());
     ASSERT_EQ(0x000004cfu, ImmutableString("textureQueryLevels(00t").mangledNameHash());
@@ -945,87 +945,87 @@
     ASSERT_EQ(0x00000433u, ImmutableString("textureSamples(00Q").mangledNameHash());
     ASSERT_EQ(0x0000022eu, ImmutableString("textureSamples(00W").mangledNameHash());
     ASSERT_EQ(0x000003e2u, ImmutableString("textureSamples(00c").mangledNameHash());
-    ASSERT_EQ(0x00000798u, ImmutableString("textureSize(00P").mangledNameHash());
+    ASSERT_EQ(0x00000799u, ImmutableString("textureSize(00P").mangledNameHash());
     ASSERT_EQ(0x00000397u, ImmutableString("textureSize(00V").mangledNameHash());
-    ASSERT_EQ(0x0000078au, ImmutableString("textureSize(00b").mangledNameHash());
-    ASSERT_EQ(0x00000797u, ImmutableString("textureSize(00Q").mangledNameHash());
-    ASSERT_EQ(0x0000079bu, ImmutableString("textureSize(00W").mangledNameHash());
-    ASSERT_EQ(0x00000789u, ImmutableString("textureSize(00c").mangledNameHash());
+    ASSERT_EQ(0x0000078bu, ImmutableString("textureSize(00b").mangledNameHash());
+    ASSERT_EQ(0x00000798u, ImmutableString("textureSize(00Q").mangledNameHash());
+    ASSERT_EQ(0x0000079cu, ImmutableString("textureSize(00W").mangledNameHash());
+    ASSERT_EQ(0x0000078au, ImmutableString("textureSize(00c").mangledNameHash());
     ASSERT_EQ(0x0000048bu, ImmutableString("texelFetch(00P10D00D").mangledNameHash());
     ASSERT_EQ(0x00000503u, ImmutableString("texelFetch(00V10D00D").mangledNameHash());
     ASSERT_EQ(0x0000045bu, ImmutableString("texelFetch(00b10D00D").mangledNameHash());
-    ASSERT_EQ(0x000005e3u, ImmutableString("texelFetch(00Q20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000081du, ImmutableString("texelFetch(00W20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005e4u, ImmutableString("texelFetch(00Q20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000081eu, ImmutableString("texelFetch(00W20D00D").mangledNameHash());
     ASSERT_EQ(0x00000331u, ImmutableString("texelFetch(00c20D00D").mangledNameHash());
     ASSERT_EQ(0x00000077u, ImmutableString("texture(00I10B00B").mangledNameHash());
     ASSERT_EQ(0x00000441u, ImmutableString("texture(00R10B00B").mangledNameHash());
     ASSERT_EQ(0x0000028bu, ImmutableString("texture(00X10B00B").mangledNameHash());
     ASSERT_EQ(0x0000031cu, ImmutableString("texture(00J20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000685u, ImmutableString("texture(00S20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000686u, ImmutableString("texture(00S20B00B").mangledNameHash());
     ASSERT_EQ(0x000000f5u, ImmutableString("texture(00Y20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000743u, ImmutableString("texture(00K20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000744u, ImmutableString("texture(00K20B00B").mangledNameHash());
     ASSERT_EQ(0x000004b2u, ImmutableString("texture(00T20B00B").mangledNameHash());
     ASSERT_EQ(0x000001ebu, ImmutableString("texture(00Z20B00B").mangledNameHash());
     ASSERT_EQ(0x0000012au, ImmutableString("texture(00L20B00B").mangledNameHash());
     ASSERT_EQ(0x00000300u, ImmutableString("texture(00U20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000655u, ImmutableString("texture(00a20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000656u, ImmutableString("texture(00a20B00B").mangledNameHash());
     ASSERT_EQ(0x000003b0u, ImmutableString("textureProj(00I20B00B").mangledNameHash());
-    ASSERT_EQ(0x000005bdu, ImmutableString("textureProj(00R20B00B").mangledNameHash());
+    ASSERT_EQ(0x000005beu, ImmutableString("textureProj(00R20B00B").mangledNameHash());
     ASSERT_EQ(0x0000039eu, ImmutableString("textureProj(00X20B00B").mangledNameHash());
     ASSERT_EQ(0x0000037bu, ImmutableString("textureProj(00I30B00B").mangledNameHash());
     ASSERT_EQ(0x00000000u, ImmutableString("textureProj(00R30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000780u, ImmutableString("textureProj(00X30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000781u, ImmutableString("textureProj(00X30B00B").mangledNameHash());
     ASSERT_EQ(0x0000045cu, ImmutableString("textureProj(00J30B00B").mangledNameHash());
     ASSERT_EQ(0x00000189u, ImmutableString("textureProj(00S30B00B").mangledNameHash());
     ASSERT_EQ(0x00000551u, ImmutableString("textureProj(00Y30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000058du, ImmutableString("texture(00d20B00B").mangledNameHash());
+    ASSERT_EQ(0x0000058eu, ImmutableString("texture(00d20B00B").mangledNameHash());
     ASSERT_EQ(0x0000048fu, ImmutableString("texture(00e30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000652u, ImmutableString("textureProj(00d30B00B").mangledNameHash());
-    ASSERT_EQ(0x0000071bu, ImmutableString("texture(00g00B00B").mangledNameHash());
-    ASSERT_EQ(0x0000084du, ImmutableString("texture(00o00B00B").mangledNameHash());
+    ASSERT_EQ(0x00000653u, ImmutableString("textureProj(00d30B00B").mangledNameHash());
+    ASSERT_EQ(0x0000071cu, ImmutableString("texture(00g00B00B").mangledNameHash());
+    ASSERT_EQ(0x0000084eu, ImmutableString("texture(00o00B00B").mangledNameHash());
     ASSERT_EQ(0x00000110u, ImmutableString("texture(00t00B00B").mangledNameHash());
     ASSERT_EQ(0x000001a0u, ImmutableString("texture(00m20B00B").mangledNameHash());
     ASSERT_EQ(0x0000019eu, ImmutableString("texture(00h20B00B").mangledNameHash());
     ASSERT_EQ(0x00000065u, ImmutableString("texture(00p20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000645u, ImmutableString("texture(00u20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000646u, ImmutableString("texture(00u20B00B").mangledNameHash());
     ASSERT_EQ(0x00000275u, ImmutableString("texture(00i20B00B").mangledNameHash());
-    ASSERT_EQ(0x00000834u, ImmutableString("texture(00f30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000835u, ImmutableString("texture(00f30B00B").mangledNameHash());
     ASSERT_EQ(0x0000005bu, ImmutableString("textureProj(00g10B00B").mangledNameHash());
-    ASSERT_EQ(0x0000062eu, ImmutableString("textureProj(00o10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000062fu, ImmutableString("textureProj(00o10B00B").mangledNameHash());
     ASSERT_EQ(0x000001e4u, ImmutableString("textureProj(00t10B00B").mangledNameHash());
     ASSERT_EQ(0x00000571u, ImmutableString("textureProj(00g30B00B").mangledNameHash());
     ASSERT_EQ(0x000001a2u, ImmutableString("textureProj(00o30B00B").mangledNameHash());
     ASSERT_EQ(0x000004e8u, ImmutableString("textureProj(00t30B00B").mangledNameHash());
-    ASSERT_EQ(0x000007c9u, ImmutableString("textureProj(00m30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000846u, ImmutableString("texture(00M10B00B").mangledNameHash());
-    ASSERT_EQ(0x00000658u, ImmutableString("textureProj(00M20B00B").mangledNameHash());
+    ASSERT_EQ(0x000007cau, ImmutableString("textureProj(00m30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000847u, ImmutableString("texture(00M10B00B").mangledNameHash());
+    ASSERT_EQ(0x00000659u, ImmutableString("textureProj(00M20B00B").mangledNameHash());
     ASSERT_EQ(0x00000452u, ImmutableString("textureProj(00M30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000668u, ImmutableString("texture(00N10B00B").mangledNameHash());
-    ASSERT_EQ(0x000007fbu, ImmutableString("textureProj(00N20B00B").mangledNameHash());
+    ASSERT_EQ(0x00000669u, ImmutableString("texture(00N10B00B").mangledNameHash());
+    ASSERT_EQ(0x000007fcu, ImmutableString("textureProj(00N20B00B").mangledNameHash());
     ASSERT_EQ(0x00000074u, ImmutableString("textureProj(00N30B00B").mangledNameHash());
     ASSERT_EQ(0x000003c4u, ImmutableString("textureQueryLod(00g00B").mangledNameHash());
     ASSERT_EQ(0x00000498u, ImmutableString("textureQueryLod(00o00B").mangledNameHash());
-    ASSERT_EQ(0x0000083cu, ImmutableString("textureQueryLod(00t00B").mangledNameHash());
+    ASSERT_EQ(0x0000083du, ImmutableString("textureQueryLod(00t00B").mangledNameHash());
     ASSERT_EQ(0x00000403u, ImmutableString("textureQueryLod(00I10B").mangledNameHash());
     ASSERT_EQ(0x00000355u, ImmutableString("textureQueryLod(00R10B").mangledNameHash());
-    ASSERT_EQ(0x0000075du, ImmutableString("textureQueryLod(00X10B").mangledNameHash());
-    ASSERT_EQ(0x000005ebu, ImmutableString("textureQueryLod(00J20B").mangledNameHash());
-    ASSERT_EQ(0x00000777u, ImmutableString("textureQueryLod(00S20B").mangledNameHash());
-    ASSERT_EQ(0x000006bfu, ImmutableString("textureQueryLod(00Y20B").mangledNameHash());
+    ASSERT_EQ(0x0000075eu, ImmutableString("textureQueryLod(00X10B").mangledNameHash());
+    ASSERT_EQ(0x000005ecu, ImmutableString("textureQueryLod(00J20B").mangledNameHash());
+    ASSERT_EQ(0x00000778u, ImmutableString("textureQueryLod(00S20B").mangledNameHash());
+    ASSERT_EQ(0x000006c0u, ImmutableString("textureQueryLod(00Y20B").mangledNameHash());
     ASSERT_EQ(0x00000475u, ImmutableString("textureQueryLod(00K20B").mangledNameHash());
     ASSERT_EQ(0x0000014du, ImmutableString("textureQueryLod(00T20B").mangledNameHash());
-    ASSERT_EQ(0x00000738u, ImmutableString("textureQueryLod(00Z20B").mangledNameHash());
-    ASSERT_EQ(0x000005dbu, ImmutableString("textureQueryLod(00h00B").mangledNameHash());
+    ASSERT_EQ(0x00000739u, ImmutableString("textureQueryLod(00Z20B").mangledNameHash());
+    ASSERT_EQ(0x000005dcu, ImmutableString("textureQueryLod(00h00B").mangledNameHash());
     ASSERT_EQ(0x0000009au, ImmutableString("textureQueryLod(00p00B").mangledNameHash());
-    ASSERT_EQ(0x00000688u, ImmutableString("textureQueryLod(00u00B").mangledNameHash());
-    ASSERT_EQ(0x000006d5u, ImmutableString("textureQueryLod(00L10B").mangledNameHash());
-    ASSERT_EQ(0x00000691u, ImmutableString("textureQueryLod(00U10B").mangledNameHash());
+    ASSERT_EQ(0x00000689u, ImmutableString("textureQueryLod(00u00B").mangledNameHash());
+    ASSERT_EQ(0x000006d6u, ImmutableString("textureQueryLod(00L10B").mangledNameHash());
+    ASSERT_EQ(0x00000692u, ImmutableString("textureQueryLod(00U10B").mangledNameHash());
     ASSERT_EQ(0x000000cdu, ImmutableString("textureQueryLod(00a10B").mangledNameHash());
     ASSERT_EQ(0x000001bfu, ImmutableString("textureQueryLod(00k20B").mangledNameHash());
     ASSERT_EQ(0x00000561u, ImmutableString("textureQueryLod(00s20B").mangledNameHash());
     ASSERT_EQ(0x00000567u, ImmutableString("textureQueryLod(00x20B").mangledNameHash());
     ASSERT_EQ(0x0000000bu, ImmutableString("textureQueryLod(00m00B").mangledNameHash());
-    ASSERT_EQ(0x000005f8u, ImmutableString("textureQueryLod(00d10B").mangledNameHash());
+    ASSERT_EQ(0x000005f9u, ImmutableString("textureQueryLod(00d10B").mangledNameHash());
     ASSERT_EQ(0x000002bbu, ImmutableString("textureQueryLod(00e20B").mangledNameHash());
     ASSERT_EQ(0x000000e7u, ImmutableString("textureQueryLod(00i00B").mangledNameHash());
     ASSERT_EQ(0x00000257u, ImmutableString("textureQueryLod(00f10B").mangledNameHash());
@@ -1035,121 +1035,121 @@
     ASSERT_EQ(0x00000172u, ImmutableString("textureOffset(00X10B10D").mangledNameHash());
     ASSERT_EQ(0x00000219u, ImmutableString("textureOffset(00J20B20D").mangledNameHash());
     ASSERT_EQ(0x0000020fu, ImmutableString("textureOffset(00S20B20D").mangledNameHash());
-    ASSERT_EQ(0x000005ccu, ImmutableString("textureOffset(00Y20B20D").mangledNameHash());
-    ASSERT_EQ(0x0000066fu, ImmutableString("textureOffset(00d20B10D").mangledNameHash());
+    ASSERT_EQ(0x000005cdu, ImmutableString("textureOffset(00Y20B20D").mangledNameHash());
+    ASSERT_EQ(0x00000670u, ImmutableString("textureOffset(00d20B10D").mangledNameHash());
     ASSERT_EQ(0x00000082u, ImmutableString("textureOffset(00L20B10D").mangledNameHash());
     ASSERT_EQ(0x00000479u, ImmutableString("textureOffset(00U20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000759u, ImmutableString("textureOffset(00a20B10D").mangledNameHash());
-    ASSERT_EQ(0x000007d7u, ImmutableString("textureOffset(00g00B00D").mangledNameHash());
-    ASSERT_EQ(0x000005dfu, ImmutableString("textureOffset(00o00B00D").mangledNameHash());
+    ASSERT_EQ(0x0000075au, ImmutableString("textureOffset(00a20B10D").mangledNameHash());
+    ASSERT_EQ(0x000007d8u, ImmutableString("textureOffset(00g00B00D").mangledNameHash());
+    ASSERT_EQ(0x000005e0u, ImmutableString("textureOffset(00o00B00D").mangledNameHash());
     ASSERT_EQ(0x0000043fu, ImmutableString("textureOffset(00t00B00D").mangledNameHash());
     ASSERT_EQ(0x000003f8u, ImmutableString("textureOffset(00O10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000718u, ImmutableString("textureOffset(00q10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000719u, ImmutableString("textureOffset(00q10B10D").mangledNameHash());
     ASSERT_EQ(0x000002b7u, ImmutableString("textureOffset(00v10B10D").mangledNameHash());
     ASSERT_EQ(0x000001d2u, ImmutableString("textureOffset(00n20B10D").mangledNameHash());
     ASSERT_EQ(0x0000006cu, ImmutableString("textureOffset(00m20B00D").mangledNameHash());
     ASSERT_EQ(0x00000205u, ImmutableString("textureOffset(00h10B00D").mangledNameHash());
     ASSERT_EQ(0x000000bfu, ImmutableString("textureOffset(00p10B00D").mangledNameHash());
-    ASSERT_EQ(0x00000802u, ImmutableString("textureOffset(00u10B00D").mangledNameHash());
+    ASSERT_EQ(0x00000803u, ImmutableString("textureOffset(00u10B00D").mangledNameHash());
     ASSERT_EQ(0x00000368u, ImmutableString("textureOffset(00i20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000076cu, ImmutableString("textureOffset(00f30B10D").mangledNameHash());
+    ASSERT_EQ(0x0000076du, ImmutableString("textureOffset(00f30B10D").mangledNameHash());
     ASSERT_EQ(0x000004beu, ImmutableString("textureProjOffset(00I20B10D").mangledNameHash());
     ASSERT_EQ(0x00000296u, ImmutableString("textureProjOffset(00R20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000841u, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
+    ASSERT_EQ(0x00000842u, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
     ASSERT_EQ(0x0000016eu, ImmutableString("textureProjOffset(00I30B10D").mangledNameHash());
-    ASSERT_EQ(0x0000083du, ImmutableString("textureProjOffset(00R30B10D").mangledNameHash());
-    ASSERT_EQ(0x000005ecu, ImmutableString("textureProjOffset(00X30B10D").mangledNameHash());
-    ASSERT_EQ(0x00000638u, ImmutableString("textureProjOffset(00J30B20D").mangledNameHash());
+    ASSERT_EQ(0x0000083eu, ImmutableString("textureProjOffset(00R30B10D").mangledNameHash());
+    ASSERT_EQ(0x000005edu, ImmutableString("textureProjOffset(00X30B10D").mangledNameHash());
+    ASSERT_EQ(0x00000639u, ImmutableString("textureProjOffset(00J30B20D").mangledNameHash());
     ASSERT_EQ(0x00000087u, ImmutableString("textureProjOffset(00S30B20D").mangledNameHash());
     ASSERT_EQ(0x000001d1u, ImmutableString("textureProjOffset(00Y30B20D").mangledNameHash());
     ASSERT_EQ(0x00000412u, ImmutableString("textureProjOffset(00d30B10D").mangledNameHash());
     ASSERT_EQ(0x00000002u, ImmutableString("textureProjOffset(00g10B00D").mangledNameHash());
-    ASSERT_EQ(0x0000057eu, ImmutableString("textureProjOffset(00o10B00D").mangledNameHash());
-    ASSERT_EQ(0x00000734u, ImmutableString("textureProjOffset(00t10B00D").mangledNameHash());
-    ASSERT_EQ(0x00000810u, ImmutableString("textureProjOffset(00g30B00D").mangledNameHash());
+    ASSERT_EQ(0x0000057fu, ImmutableString("textureProjOffset(00o10B00D").mangledNameHash());
+    ASSERT_EQ(0x00000735u, ImmutableString("textureProjOffset(00t10B00D").mangledNameHash());
+    ASSERT_EQ(0x00000811u, ImmutableString("textureProjOffset(00g30B00D").mangledNameHash());
     ASSERT_EQ(0x00000450u, ImmutableString("textureProjOffset(00o30B00D").mangledNameHash());
-    ASSERT_EQ(0x0000071du, ImmutableString("textureProjOffset(00t30B00D").mangledNameHash());
-    ASSERT_EQ(0x000006e3u, ImmutableString("textureProjOffset(00O20B10D").mangledNameHash());
+    ASSERT_EQ(0x0000071eu, ImmutableString("textureProjOffset(00t30B00D").mangledNameHash());
+    ASSERT_EQ(0x000006e4u, ImmutableString("textureProjOffset(00O20B10D").mangledNameHash());
     ASSERT_EQ(0x00000305u, ImmutableString("textureProjOffset(00q20B10D").mangledNameHash());
     ASSERT_EQ(0x0000022au, ImmutableString("textureProjOffset(00v20B10D").mangledNameHash());
     ASSERT_EQ(0x00000135u, ImmutableString("textureProjOffset(00O30B10D").mangledNameHash());
     ASSERT_EQ(0x00000081u, ImmutableString("textureProjOffset(00q30B10D").mangledNameHash());
-    ASSERT_EQ(0x000007c0u, ImmutableString("textureProjOffset(00v30B10D").mangledNameHash());
+    ASSERT_EQ(0x000007c1u, ImmutableString("textureProjOffset(00v30B10D").mangledNameHash());
     ASSERT_EQ(0x000002d0u, ImmutableString("textureProjOffset(00n30B10D").mangledNameHash());
-    ASSERT_EQ(0x00000631u, ImmutableString("textureProjOffset(00m30B00D").mangledNameHash());
+    ASSERT_EQ(0x00000632u, ImmutableString("textureProjOffset(00m30B00D").mangledNameHash());
     ASSERT_EQ(0x00000476u, ImmutableString("textureLodOffset(00I10B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000646u, ImmutableString("textureLodOffset(00R10B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000647u, ImmutableString("textureLodOffset(00R10B00B10D").mangledNameHash());
     ASSERT_EQ(0x000004b1u, ImmutableString("textureLodOffset(00X10B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000363u, ImmutableString("textureLodOffset(00J20B00B20D").mangledNameHash());
     ASSERT_EQ(0x00000099u, ImmutableString("textureLodOffset(00S20B00B20D").mangledNameHash());
-    ASSERT_EQ(0x00000724u, ImmutableString("textureLodOffset(00Y20B00B20D").mangledNameHash());
+    ASSERT_EQ(0x00000725u, ImmutableString("textureLodOffset(00Y20B00B20D").mangledNameHash());
     ASSERT_EQ(0x00000557u, ImmutableString("textureLodOffset(00d20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000825u, ImmutableString("textureLodOffset(00L20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000826u, ImmutableString("textureLodOffset(00L20B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000041cu, ImmutableString("textureLodOffset(00U20B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000002au, ImmutableString("textureLodOffset(00a20B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000184u, ImmutableString("textureLodOffset(00g00B00B00D").mangledNameHash());
     ASSERT_EQ(0x0000001du, ImmutableString("textureLodOffset(00o00B00B00D").mangledNameHash());
     ASSERT_EQ(0x000002e6u, ImmutableString("textureLodOffset(00t00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000007edu, ImmutableString("textureLodOffset(00m20B00B00D").mangledNameHash());
+    ASSERT_EQ(0x000007eeu, ImmutableString("textureLodOffset(00m20B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000286u, ImmutableString("textureLodOffset(00h10B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000269u, ImmutableString("textureLodOffset(00p10B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000826u, ImmutableString("textureLodOffset(00u10B00B00D").mangledNameHash());
+    ASSERT_EQ(0x00000827u, ImmutableString("textureLodOffset(00u10B00B00D").mangledNameHash());
     ASSERT_EQ(0x0000044au, ImmutableString("textureLodOffset(00i20B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000818u, ImmutableString("textureProjLodOffset(00I20B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000819u, ImmutableString("textureProjLodOffset(00I20B00B10D").mangledNameHash());
     ASSERT_EQ(0x000000beu, ImmutableString("textureProjLodOffset(00R20B00B10D").mangledNameHash());
     ASSERT_EQ(0x000002fcu, ImmutableString("textureProjLodOffset(00X20B00B10D").mangledNameHash());
-    ASSERT_EQ(0x00000615u, ImmutableString("textureProjLodOffset(00I30B00B10D").mangledNameHash());
-    ASSERT_EQ(0x000005d7u, ImmutableString("textureProjLodOffset(00R30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x00000616u, ImmutableString("textureProjLodOffset(00I30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x000005d8u, ImmutableString("textureProjLodOffset(00R30B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000409u, ImmutableString("textureProjLodOffset(00X30B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000032cu, ImmutableString("textureProjLodOffset(00J30B00B20D").mangledNameHash());
     ASSERT_EQ(0x000000e4u, ImmutableString("textureProjLodOffset(00S30B00B20D").mangledNameHash());
-    ASSERT_EQ(0x0000074bu, ImmutableString("textureProjLodOffset(00Y30B00B20D").mangledNameHash());
-    ASSERT_EQ(0x00000612u, ImmutableString("textureProjLodOffset(00d30B00B10D").mangledNameHash());
+    ASSERT_EQ(0x0000074cu, ImmutableString("textureProjLodOffset(00Y30B00B20D").mangledNameHash());
+    ASSERT_EQ(0x00000613u, ImmutableString("textureProjLodOffset(00d30B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000565u, ImmutableString("textureProjLodOffset(00g10B00B00D").mangledNameHash());
     ASSERT_EQ(0x0000013au, ImmutableString("textureProjLodOffset(00o10B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000006e2u, ImmutableString("textureProjLodOffset(00t10B00B00D").mangledNameHash());
+    ASSERT_EQ(0x000006e3u, ImmutableString("textureProjLodOffset(00t10B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000155u, ImmutableString("textureProjLodOffset(00g30B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000005bcu, ImmutableString("textureProjLodOffset(00o30B00B00D").mangledNameHash());
+    ASSERT_EQ(0x000005bdu, ImmutableString("textureProjLodOffset(00o30B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000071u, ImmutableString("textureProjLodOffset(00t30B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000830u, ImmutableString("textureProjLodOffset(00m30B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000006d4u, ImmutableString("texelFetchOffset(00I10D00D10D").mangledNameHash());
+    ASSERT_EQ(0x00000831u, ImmutableString("textureProjLodOffset(00m30B00B00D").mangledNameHash());
+    ASSERT_EQ(0x000006d5u, ImmutableString("texelFetchOffset(00I10D00D10D").mangledNameHash());
     ASSERT_EQ(0x000004adu, ImmutableString("texelFetchOffset(00R10D00D10D").mangledNameHash());
     ASSERT_EQ(0x0000019cu, ImmutableString("texelFetchOffset(00X10D00D10D").mangledNameHash());
     ASSERT_EQ(0x00000044u, ImmutableString("texelFetchOffset(00J20D00D20D").mangledNameHash());
     ASSERT_EQ(0x000004fcu, ImmutableString("texelFetchOffset(00S20D00D20D").mangledNameHash());
     ASSERT_EQ(0x0000024eu, ImmutableString("texelFetchOffset(00Y20D00D20D").mangledNameHash());
-    ASSERT_EQ(0x000007b8u, ImmutableString("texelFetchOffset(00L20D00D10D").mangledNameHash());
+    ASSERT_EQ(0x000007b9u, ImmutableString("texelFetchOffset(00L20D00D10D").mangledNameHash());
     ASSERT_EQ(0x0000040cu, ImmutableString("texelFetchOffset(00U20D00D10D").mangledNameHash());
     ASSERT_EQ(0x000000b5u, ImmutableString("texelFetchOffset(00a20D00D10D").mangledNameHash());
-    ASSERT_EQ(0x000007c3u, ImmutableString("texelFetchOffset(00g00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007c4u, ImmutableString("texelFetchOffset(00g00D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000022cu, ImmutableString("texelFetchOffset(00o00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000589u, ImmutableString("texelFetchOffset(00t00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000005e6u, ImmutableString("texelFetchOffset(00O10D10D").mangledNameHash());
+    ASSERT_EQ(0x0000058au, ImmutableString("texelFetchOffset(00t00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000005e7u, ImmutableString("texelFetchOffset(00O10D10D").mangledNameHash());
     ASSERT_EQ(0x00000023u, ImmutableString("texelFetchOffset(00q10D10D").mangledNameHash());
-    ASSERT_EQ(0x00000854u, ImmutableString("texelFetchOffset(00v10D10D").mangledNameHash());
+    ASSERT_EQ(0x00000855u, ImmutableString("texelFetchOffset(00v10D10D").mangledNameHash());
     ASSERT_EQ(0x000001bau, ImmutableString("texelFetchOffset(00h10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000121u, ImmutableString("texelFetchOffset(00p10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000065du, ImmutableString("texelFetchOffset(00u10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000065eu, ImmutableString("texelFetchOffset(00u10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000362u, ImmutableString("textureGradOffset(00I10B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000007b2u, ImmutableString("textureGradOffset(00R10B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x000007b3u, ImmutableString("textureGradOffset(00R10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000019bu, ImmutableString("textureGradOffset(00X10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000026du, ImmutableString("textureGradOffset(00J20B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x000006c2u, ImmutableString("textureGradOffset(00S20B20B20B20D").mangledNameHash());
-    ASSERT_EQ(0x00000592u, ImmutableString("textureGradOffset(00Y20B20B20B20D").mangledNameHash());
+    ASSERT_EQ(0x000006c3u, ImmutableString("textureGradOffset(00S20B20B20B20D").mangledNameHash());
+    ASSERT_EQ(0x00000593u, ImmutableString("textureGradOffset(00Y20B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x00000410u, ImmutableString("textureGradOffset(00d20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000003e9u, ImmutableString("textureGradOffset(00L20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000003e5u, ImmutableString("textureGradOffset(00U20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000307u, ImmutableString("textureGradOffset(00a20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000581u, ImmutableString("textureGradOffset(00f30B10B10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000582u, ImmutableString("textureGradOffset(00f30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000002a3u, ImmutableString("textureGradOffset(00g00B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000761u, ImmutableString("textureGradOffset(00o00B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000585u, ImmutableString("textureGradOffset(00t00B00B00B00D").mangledNameHash());
+    ASSERT_EQ(0x00000762u, ImmutableString("textureGradOffset(00o00B00B00B00D").mangledNameHash());
+    ASSERT_EQ(0x00000586u, ImmutableString("textureGradOffset(00t00B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x000003e7u, ImmutableString("textureGradOffset(00O10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000053fu, ImmutableString("textureGradOffset(00q10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000002edu, ImmutableString("textureGradOffset(00v10B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x000004eeu, ImmutableString("textureGradOffset(00n20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000349u, ImmutableString("textureGradOffset(00m20B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000006ddu, ImmutableString("textureGradOffset(00h10B00B00B00D").mangledNameHash());
+    ASSERT_EQ(0x000006deu, ImmutableString("textureGradOffset(00h10B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000154u, ImmutableString("textureGradOffset(00p10B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x000004cdu, ImmutableString("textureGradOffset(00u10B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000434u, ImmutableString("textureGradOffset(00i20B00B00B00D").mangledNameHash());
@@ -1159,13 +1159,13 @@
               ImmutableString("textureProjGradOffset(00R20B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000038au,
               ImmutableString("textureProjGradOffset(00X20B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000005a9u,
+    ASSERT_EQ(0x000005aau,
               ImmutableString("textureProjGradOffset(00I30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000007b7u,
+    ASSERT_EQ(0x000007b8u,
               ImmutableString("textureProjGradOffset(00R30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x000006f1u,
+    ASSERT_EQ(0x000006f2u,
               ImmutableString("textureProjGradOffset(00X30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000852u,
+    ASSERT_EQ(0x00000853u,
               ImmutableString("textureProjGradOffset(00J30B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x000004f3u,
               ImmutableString("textureProjGradOffset(00S30B20B20B20D").mangledNameHash());
@@ -1173,17 +1173,17 @@
               ImmutableString("textureProjGradOffset(00Y30B20B20B20D").mangledNameHash());
     ASSERT_EQ(0x0000016cu,
               ImmutableString("textureProjGradOffset(00d30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000831u,
+    ASSERT_EQ(0x00000832u,
               ImmutableString("textureProjGradOffset(00g10B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x000002c7u,
               ImmutableString("textureProjGradOffset(00o10B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000773u,
+    ASSERT_EQ(0x00000774u,
               ImmutableString("textureProjGradOffset(00t10B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x000001a1u,
               ImmutableString("textureProjGradOffset(00g30B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x00000570u,
               ImmutableString("textureProjGradOffset(00o30B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x00000674u,
+    ASSERT_EQ(0x00000675u,
               ImmutableString("textureProjGradOffset(00t30B00B00B00D").mangledNameHash());
     ASSERT_EQ(0x0000034fu,
               ImmutableString("textureProjGradOffset(00O20B10B10B10D").mangledNameHash());
@@ -1197,115 +1197,115 @@
               ImmutableString("textureProjGradOffset(00q30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x00000005u,
               ImmutableString("textureProjGradOffset(00v30B10B10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000744u,
+    ASSERT_EQ(0x00000745u,
               ImmutableString("textureProjGradOffset(00n30B10B10B10D").mangledNameHash());
     ASSERT_EQ(0x0000056du,
               ImmutableString("textureProjGradOffset(00m30B00B00B00D").mangledNameHash());
-    ASSERT_EQ(0x000007d0u, ImmutableString("textureOffset(00I10B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000007d1u, ImmutableString("textureOffset(00I10B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000147u, ImmutableString("textureOffset(00R10B10D00B").mangledNameHash());
     ASSERT_EQ(0x000000f8u, ImmutableString("textureOffset(00X10B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000007d4u, ImmutableString("textureOffset(00J20B20D00B").mangledNameHash());
-    ASSERT_EQ(0x000005acu, ImmutableString("textureOffset(00S20B20D00B").mangledNameHash());
-    ASSERT_EQ(0x000006c1u, ImmutableString("textureOffset(00Y20B20D00B").mangledNameHash());
+    ASSERT_EQ(0x000007d5u, ImmutableString("textureOffset(00J20B20D00B").mangledNameHash());
+    ASSERT_EQ(0x000005adu, ImmutableString("textureOffset(00S20B20D00B").mangledNameHash());
+    ASSERT_EQ(0x000006c2u, ImmutableString("textureOffset(00Y20B20D00B").mangledNameHash());
     ASSERT_EQ(0x0000006bu, ImmutableString("textureOffset(00d20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000006cau, ImmutableString("textureOffset(00L20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000747u, ImmutableString("textureOffset(00U20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000006cbu, ImmutableString("textureOffset(00L20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000748u, ImmutableString("textureOffset(00U20B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000145u, ImmutableString("textureOffset(00a20B10D00B").mangledNameHash());
     ASSERT_EQ(0x0000037du, ImmutableString("textureOffset(00g00B00D00B").mangledNameHash());
     ASSERT_EQ(0x000002cdu, ImmutableString("textureOffset(00o00B00D00B").mangledNameHash());
-    ASSERT_EQ(0x000005b1u, ImmutableString("textureOffset(00t00B00D00B").mangledNameHash());
-    ASSERT_EQ(0x0000076au, ImmutableString("textureOffset(00m20B00D00B").mangledNameHash());
+    ASSERT_EQ(0x000005b2u, ImmutableString("textureOffset(00t00B00D00B").mangledNameHash());
+    ASSERT_EQ(0x0000076bu, ImmutableString("textureOffset(00m20B00D00B").mangledNameHash());
     ASSERT_EQ(0x000002dcu, ImmutableString("textureOffset(00h10B00D00B").mangledNameHash());
-    ASSERT_EQ(0x00000730u, ImmutableString("textureOffset(00p10B00D00B").mangledNameHash());
+    ASSERT_EQ(0x00000731u, ImmutableString("textureOffset(00p10B00D00B").mangledNameHash());
     ASSERT_EQ(0x00000161u, ImmutableString("textureOffset(00u10B00D00B").mangledNameHash());
-    ASSERT_EQ(0x000005b2u, ImmutableString("textureOffset(00i20B00D00B").mangledNameHash());
-    ASSERT_EQ(0x0000060du, ImmutableString("textureProjOffset(00I20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000005aeu, ImmutableString("textureProjOffset(00R20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000006f0u, ImmutableString("textureProjOffset(00X20B10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000821u, ImmutableString("textureProjOffset(00I30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000005b3u, ImmutableString("textureOffset(00i20B00D00B").mangledNameHash());
+    ASSERT_EQ(0x0000060eu, ImmutableString("textureProjOffset(00I20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000005afu, ImmutableString("textureProjOffset(00R20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x000006f1u, ImmutableString("textureProjOffset(00X20B10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000822u, ImmutableString("textureProjOffset(00I30B10D00B").mangledNameHash());
     ASSERT_EQ(0x0000042du, ImmutableString("textureProjOffset(00R30B10D00B").mangledNameHash());
-    ASSERT_EQ(0x0000065au, ImmutableString("textureProjOffset(00X30B10D00B").mangledNameHash());
+    ASSERT_EQ(0x0000065bu, ImmutableString("textureProjOffset(00X30B10D00B").mangledNameHash());
     ASSERT_EQ(0x00000158u, ImmutableString("textureProjOffset(00J30B20D00B").mangledNameHash());
-    ASSERT_EQ(0x00000706u, ImmutableString("textureProjOffset(00S30B20D00B").mangledNameHash());
+    ASSERT_EQ(0x00000707u, ImmutableString("textureProjOffset(00S30B20D00B").mangledNameHash());
     ASSERT_EQ(0x00000055u, ImmutableString("textureProjOffset(00Y30B20D00B").mangledNameHash());
     ASSERT_EQ(0x000001f9u, ImmutableString("textureProjOffset(00d30B10D00B").mangledNameHash());
-    ASSERT_EQ(0x000005c3u, ImmutableString("textureProjOffset(00g10B00D00B").mangledNameHash());
+    ASSERT_EQ(0x000005c4u, ImmutableString("textureProjOffset(00g10B00D00B").mangledNameHash());
     ASSERT_EQ(0x00000542u, ImmutableString("textureProjOffset(00o10B00D00B").mangledNameHash());
     ASSERT_EQ(0x000001b2u, ImmutableString("textureProjOffset(00t10B00D00B").mangledNameHash());
     ASSERT_EQ(0x0000040bu, ImmutableString("textureProjOffset(00g30B00D00B").mangledNameHash());
-    ASSERT_EQ(0x00000620u, ImmutableString("textureProjOffset(00o30B00D00B").mangledNameHash());
+    ASSERT_EQ(0x00000621u, ImmutableString("textureProjOffset(00o30B00D00B").mangledNameHash());
     ASSERT_EQ(0x00000035u, ImmutableString("textureProjOffset(00t30B00D00B").mangledNameHash());
     ASSERT_EQ(0x00000339u, ImmutableString("textureProjOffset(00m30B00D00B").mangledNameHash());
     ASSERT_EQ(0x00000284u, ImmutableString("texture(00M10B").mangledNameHash());
     ASSERT_EQ(0x000002d3u, ImmutableString("textureProj(00M20B").mangledNameHash());
     ASSERT_EQ(0x000003e8u, ImmutableString("textureProj(00M30B").mangledNameHash());
     ASSERT_EQ(0x000003e1u, ImmutableString("textureSize(00M00D").mangledNameHash());
-    ASSERT_EQ(0x000006beu, ImmutableString("texelFetch(00M10D00D").mangledNameHash());
+    ASSERT_EQ(0x000006bfu, ImmutableString("texelFetch(00M10D00D").mangledNameHash());
     ASSERT_EQ(0x000000b1u, ImmutableString("texture(00N10B").mangledNameHash());
     ASSERT_EQ(0x00000402u, ImmutableString("textureProj(00N20B").mangledNameHash());
     ASSERT_EQ(0x0000036bu, ImmutableString("textureProj(00N30B").mangledNameHash());
-    ASSERT_EQ(0x000006aeu, ImmutableString("rgb_2_yuv(20B00H").mangledNameHash());
+    ASSERT_EQ(0x000006afu, ImmutableString("rgb_2_yuv(20B00H").mangledNameHash());
     ASSERT_EQ(0x0000045au, ImmutableString("yuv_2_rgb(20B00H").mangledNameHash());
-    ASSERT_EQ(0x00000579u, ImmutableString("textureSize(00N00D").mangledNameHash());
+    ASSERT_EQ(0x0000057au, ImmutableString("textureSize(00N00D").mangledNameHash());
     ASSERT_EQ(0x000001ceu, ImmutableString("texelFetch(00N10D00D").mangledNameHash());
-    ASSERT_EQ(0x000007adu, ImmutableString("textureGather(00I10B").mangledNameHash());
+    ASSERT_EQ(0x000007aeu, ImmutableString("textureGather(00I10B").mangledNameHash());
     ASSERT_EQ(0x0000045du, ImmutableString("textureGather(00R10B").mangledNameHash());
     ASSERT_EQ(0x00000146u, ImmutableString("textureGather(00X10B").mangledNameHash());
     ASSERT_EQ(0x00000501u, ImmutableString("textureGather(00I10B00D").mangledNameHash());
-    ASSERT_EQ(0x000007e6u, ImmutableString("textureGather(00R10B00D").mangledNameHash());
-    ASSERT_EQ(0x00000754u, ImmutableString("textureGather(00X10B00D").mangledNameHash());
+    ASSERT_EQ(0x000007e7u, ImmutableString("textureGather(00R10B00D").mangledNameHash());
+    ASSERT_EQ(0x00000755u, ImmutableString("textureGather(00X10B00D").mangledNameHash());
     ASSERT_EQ(0x000000e5u, ImmutableString("textureGather(00L20B").mangledNameHash());
-    ASSERT_EQ(0x000005e1u, ImmutableString("textureGather(00U20B").mangledNameHash());
+    ASSERT_EQ(0x000005e2u, ImmutableString("textureGather(00U20B").mangledNameHash());
     ASSERT_EQ(0x0000034eu, ImmutableString("textureGather(00a20B").mangledNameHash());
     ASSERT_EQ(0x000000a9u, ImmutableString("textureGather(00L20B00D").mangledNameHash());
     ASSERT_EQ(0x0000042eu, ImmutableString("textureGather(00U20B00D").mangledNameHash());
-    ASSERT_EQ(0x00000662u, ImmutableString("textureGather(00a20B00D").mangledNameHash());
-    ASSERT_EQ(0x00000819u, ImmutableString("textureGather(00K20B").mangledNameHash());
-    ASSERT_EQ(0x00000851u, ImmutableString("textureGather(00T20B").mangledNameHash());
-    ASSERT_EQ(0x000007beu, ImmutableString("textureGather(00Z20B").mangledNameHash());
+    ASSERT_EQ(0x00000663u, ImmutableString("textureGather(00a20B00D").mangledNameHash());
+    ASSERT_EQ(0x0000081au, ImmutableString("textureGather(00K20B").mangledNameHash());
+    ASSERT_EQ(0x00000852u, ImmutableString("textureGather(00T20B").mangledNameHash());
+    ASSERT_EQ(0x000007bfu, ImmutableString("textureGather(00Z20B").mangledNameHash());
     ASSERT_EQ(0x000003ffu, ImmutableString("textureGather(00K20B00D").mangledNameHash());
     ASSERT_EQ(0x00000401u, ImmutableString("textureGather(00T20B00D").mangledNameHash());
     ASSERT_EQ(0x000003d7u, ImmutableString("textureGather(00Z20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000061du, ImmutableString("textureGather(00k30B").mangledNameHash());
+    ASSERT_EQ(0x0000061eu, ImmutableString("textureGather(00k30B").mangledNameHash());
     ASSERT_EQ(0x0000052eu, ImmutableString("textureGather(00s30B").mangledNameHash());
     ASSERT_EQ(0x000003d4u, ImmutableString("textureGather(00x30B").mangledNameHash());
-    ASSERT_EQ(0x00000701u, ImmutableString("textureGather(00k30B00D").mangledNameHash());
+    ASSERT_EQ(0x00000702u, ImmutableString("textureGather(00k30B00D").mangledNameHash());
     ASSERT_EQ(0x00000266u, ImmutableString("textureGather(00s30B00D").mangledNameHash());
     ASSERT_EQ(0x0000013bu, ImmutableString("textureGather(00x30B00D").mangledNameHash());
     ASSERT_EQ(0x00000054u, ImmutableString("textureGather(00O20B").mangledNameHash());
     ASSERT_EQ(0x000002a4u, ImmutableString("textureGather(00q20B").mangledNameHash());
     ASSERT_EQ(0x00000471u, ImmutableString("textureGather(00v20B").mangledNameHash());
-    ASSERT_EQ(0x0000072bu, ImmutableString("textureGather(00O20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000063eu, ImmutableString("textureGather(00q20B00D").mangledNameHash());
+    ASSERT_EQ(0x0000072cu, ImmutableString("textureGather(00O20B00D").mangledNameHash());
+    ASSERT_EQ(0x0000063fu, ImmutableString("textureGather(00q20B00D").mangledNameHash());
     ASSERT_EQ(0x000000ddu, ImmutableString("textureGather(00v20B00D").mangledNameHash());
-    ASSERT_EQ(0x0000072eu, ImmutableString("textureGather(00d10B").mangledNameHash());
-    ASSERT_EQ(0x000007f0u, ImmutableString("textureGather(00d10B00B").mangledNameHash());
-    ASSERT_EQ(0x0000064du, ImmutableString("textureGather(00f20B").mangledNameHash());
+    ASSERT_EQ(0x0000072fu, ImmutableString("textureGather(00d10B").mangledNameHash());
+    ASSERT_EQ(0x000007f1u, ImmutableString("textureGather(00d10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000064eu, ImmutableString("textureGather(00f20B").mangledNameHash());
     ASSERT_EQ(0x00000101u, ImmutableString("textureGather(00f20B00B").mangledNameHash());
     ASSERT_EQ(0x000003fau, ImmutableString("textureGather(00e20B").mangledNameHash());
     ASSERT_EQ(0x000000ceu, ImmutableString("textureGather(00e20B00B").mangledNameHash());
-    ASSERT_EQ(0x0000070du, ImmutableString("textureGather(00l30B00B").mangledNameHash());
-    ASSERT_EQ(0x00000753u, ImmutableString("textureGather(00n10B00B").mangledNameHash());
+    ASSERT_EQ(0x0000070eu, ImmutableString("textureGather(00l30B00B").mangledNameHash());
+    ASSERT_EQ(0x00000754u, ImmutableString("textureGather(00n10B00B").mangledNameHash());
     ASSERT_EQ(0x00000080u, ImmutableString("textureGatherOffset(00I10B10D").mangledNameHash());
-    ASSERT_EQ(0x0000081au, ImmutableString("textureGatherOffset(00R10B10D").mangledNameHash());
+    ASSERT_EQ(0x0000081bu, ImmutableString("textureGatherOffset(00R10B10D").mangledNameHash());
     ASSERT_EQ(0x000003cau, ImmutableString("textureGatherOffset(00X10B10D").mangledNameHash());
     ASSERT_EQ(0x00000555u, ImmutableString("textureGatherOffset(00I10B10D00D").mangledNameHash());
     ASSERT_EQ(0x0000011cu, ImmutableString("textureGatherOffset(00R10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000082bu, ImmutableString("textureGatherOffset(00X10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000703u, ImmutableString("textureGatherOffset(00L20B10D").mangledNameHash());
+    ASSERT_EQ(0x0000082cu, ImmutableString("textureGatherOffset(00X10B10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000704u, ImmutableString("textureGatherOffset(00L20B10D").mangledNameHash());
     ASSERT_EQ(0x000003a2u, ImmutableString("textureGatherOffset(00U20B10D").mangledNameHash());
-    ASSERT_EQ(0x00000593u, ImmutableString("textureGatherOffset(00a20B10D").mangledNameHash());
+    ASSERT_EQ(0x00000594u, ImmutableString("textureGatherOffset(00a20B10D").mangledNameHash());
     ASSERT_EQ(0x00000247u, ImmutableString("textureGatherOffset(00L20B10D00D").mangledNameHash());
     ASSERT_EQ(0x000004ffu, ImmutableString("textureGatherOffset(00U20B10D00D").mangledNameHash());
     ASSERT_EQ(0x0000007fu, ImmutableString("textureGatherOffset(00a20B10D00D").mangledNameHash());
     ASSERT_EQ(0x00000148u, ImmutableString("textureGatherOffset(00d10B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000030fu, ImmutableString("textureGatherOffset(00f20B00B10D").mangledNameHash());
     ASSERT_EQ(0x00000230u, ImmutableString("textureGatherOffset(00O10B10D").mangledNameHash());
-    ASSERT_EQ(0x00000661u, ImmutableString("textureGatherOffset(00q10B10D").mangledNameHash());
+    ASSERT_EQ(0x00000662u, ImmutableString("textureGatherOffset(00q10B10D").mangledNameHash());
     ASSERT_EQ(0x000004f7u, ImmutableString("textureGatherOffset(00v10B10D").mangledNameHash());
     ASSERT_EQ(0x00000474u, ImmutableString("textureGatherOffset(00O10B10D00D").mangledNameHash());
     ASSERT_EQ(0x00000500u, ImmutableString("textureGatherOffset(00q10B10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000838u, ImmutableString("textureGatherOffset(00v10B10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000839u, ImmutableString("textureGatherOffset(00v10B10D00D").mangledNameHash());
     ASSERT_EQ(0x000000cbu, ImmutableString("textureGatherOffset(00n10B00B10D").mangledNameHash());
     ASSERT_EQ(0x0000027eu, ImmutableString("textureGatherOffsets(00I10B70D").mangledNameHash());
     ASSERT_EQ(0x00000508u, ImmutableString("textureGatherOffsets(00R10B70D").mangledNameHash());
@@ -1316,32 +1316,32 @@
     ASSERT_EQ(0x00000576u, ImmutableString("textureGatherOffsets(00L20B70D").mangledNameHash());
     ASSERT_EQ(0x00000259u, ImmutableString("textureGatherOffsets(00U20B70D").mangledNameHash());
     ASSERT_EQ(0x000001acu, ImmutableString("textureGatherOffsets(00a20B70D").mangledNameHash());
-    ASSERT_EQ(0x0000064eu, ImmutableString("textureGatherOffsets(00L20B70D00D").mangledNameHash());
-    ASSERT_EQ(0x0000060eu, ImmutableString("textureGatherOffsets(00U20B70D00D").mangledNameHash());
+    ASSERT_EQ(0x0000064fu, ImmutableString("textureGatherOffsets(00L20B70D00D").mangledNameHash());
+    ASSERT_EQ(0x0000060fu, ImmutableString("textureGatherOffsets(00U20B70D00D").mangledNameHash());
     ASSERT_EQ(0x000002ffu, ImmutableString("textureGatherOffsets(00a20B70D00D").mangledNameHash());
-    ASSERT_EQ(0x00000610u, ImmutableString("textureGatherOffsets(00O10B70D").mangledNameHash());
-    ASSERT_EQ(0x00000682u, ImmutableString("textureGatherOffsets(00q10B70D").mangledNameHash());
-    ASSERT_EQ(0x000006f3u, ImmutableString("textureGatherOffsets(00v10B70D").mangledNameHash());
+    ASSERT_EQ(0x00000611u, ImmutableString("textureGatherOffsets(00O10B70D").mangledNameHash());
+    ASSERT_EQ(0x00000683u, ImmutableString("textureGatherOffsets(00q10B70D").mangledNameHash());
+    ASSERT_EQ(0x000006f4u, ImmutableString("textureGatherOffsets(00v10B70D").mangledNameHash());
     ASSERT_EQ(0x00000100u, ImmutableString("textureGatherOffsets(00O10B70D00D").mangledNameHash());
-    ASSERT_EQ(0x00000591u, ImmutableString("textureGatherOffsets(00q10B70D00D").mangledNameHash());
-    ASSERT_EQ(0x00000697u, ImmutableString("textureGatherOffsets(00v10B70D00D").mangledNameHash());
+    ASSERT_EQ(0x00000592u, ImmutableString("textureGatherOffsets(00q10B70D00D").mangledNameHash());
+    ASSERT_EQ(0x00000698u, ImmutableString("textureGatherOffsets(00v10B70D00D").mangledNameHash());
     ASSERT_EQ(0x00000330u, ImmutableString("textureGatherOffsets(00d10B00B70D").mangledNameHash());
     ASSERT_EQ(0x00000053u, ImmutableString("textureGatherOffsets(00f20B00B70D").mangledNameHash());
     ASSERT_EQ(0x000004b3u, ImmutableString("textureGatherOffsets(00n10B00B70D").mangledNameHash());
     ASSERT_EQ(0x0000053du, ImmutableString("dFdxFine(00B").mangledNameHash());
     ASSERT_EQ(0x000004aeu, ImmutableString("dFdxFine(10B").mangledNameHash());
-    ASSERT_EQ(0x0000068cu, ImmutableString("dFdxFine(20B").mangledNameHash());
-    ASSERT_EQ(0x000005e9u, ImmutableString("dFdxFine(30B").mangledNameHash());
+    ASSERT_EQ(0x0000068du, ImmutableString("dFdxFine(20B").mangledNameHash());
+    ASSERT_EQ(0x000005eau, ImmutableString("dFdxFine(30B").mangledNameHash());
     ASSERT_EQ(0x00000369u, ImmutableString("dFdyFine(00B").mangledNameHash());
     ASSERT_EQ(0x00000405u, ImmutableString("dFdyFine(10B").mangledNameHash());
     ASSERT_EQ(0x000004aau, ImmutableString("dFdyFine(20B").mangledNameHash());
     ASSERT_EQ(0x00000560u, ImmutableString("dFdyFine(30B").mangledNameHash());
     ASSERT_EQ(0x0000031au, ImmutableString("dFdxCoarse(00B").mangledNameHash());
     ASSERT_EQ(0x00000384u, ImmutableString("dFdxCoarse(10B").mangledNameHash());
-    ASSERT_EQ(0x000007fdu, ImmutableString("dFdxCoarse(20B").mangledNameHash());
+    ASSERT_EQ(0x000007feu, ImmutableString("dFdxCoarse(20B").mangledNameHash());
     ASSERT_EQ(0x00000283u, ImmutableString("dFdxCoarse(30B").mangledNameHash());
     ASSERT_EQ(0x0000007du, ImmutableString("dFdyCoarse(00B").mangledNameHash());
-    ASSERT_EQ(0x0000082au, ImmutableString("dFdyCoarse(10B").mangledNameHash());
+    ASSERT_EQ(0x0000082bu, ImmutableString("dFdyCoarse(10B").mangledNameHash());
     ASSERT_EQ(0x0000056fu, ImmutableString("dFdyCoarse(20B").mangledNameHash());
     ASSERT_EQ(0x000004bau, ImmutableString("dFdyCoarse(30B").mangledNameHash());
     ASSERT_EQ(0x00000347u, ImmutableString("fwidthFine(00B").mangledNameHash());
@@ -1349,29 +1349,29 @@
     ASSERT_EQ(0x00000497u, ImmutableString("fwidthFine(20B").mangledNameHash());
     ASSERT_EQ(0x000003feu, ImmutableString("fwidthFine(30B").mangledNameHash());
     ASSERT_EQ(0x0000056eu, ImmutableString("fwidthCoarse(00B").mangledNameHash());
-    ASSERT_EQ(0x0000060cu, ImmutableString("fwidthCoarse(10B").mangledNameHash());
+    ASSERT_EQ(0x0000060du, ImmutableString("fwidthCoarse(10B").mangledNameHash());
     ASSERT_EQ(0x00000411u, ImmutableString("fwidthCoarse(20B").mangledNameHash());
     ASSERT_EQ(0x000004bdu, ImmutableString("fwidthCoarse(30B").mangledNameHash());
     ASSERT_EQ(0x00000486u, ImmutableString("interpolateAtCentroid(00B").mangledNameHash());
     ASSERT_EQ(0x000003dfu, ImmutableString("interpolateAtCentroid(10B").mangledNameHash());
-    ASSERT_EQ(0x000005d6u, ImmutableString("interpolateAtCentroid(20B").mangledNameHash());
+    ASSERT_EQ(0x000005d7u, ImmutableString("interpolateAtCentroid(20B").mangledNameHash());
     ASSERT_EQ(0x0000052du, ImmutableString("interpolateAtCentroid(30B").mangledNameHash());
-    ASSERT_EQ(0x000006fcu, ImmutableString("interpolateAtSample(00B00D").mangledNameHash());
+    ASSERT_EQ(0x000006fdu, ImmutableString("interpolateAtSample(00B00D").mangledNameHash());
     ASSERT_EQ(0x0000013cu, ImmutableString("interpolateAtSample(10B00D").mangledNameHash());
     ASSERT_EQ(0x000002afu, ImmutableString("interpolateAtSample(20B00D").mangledNameHash());
     ASSERT_EQ(0x00000282u, ImmutableString("interpolateAtSample(30B00D").mangledNameHash());
     ASSERT_EQ(0x00000097u, ImmutableString("interpolateAtOffset(00B10B").mangledNameHash());
-    ASSERT_EQ(0x000005efu, ImmutableString("interpolateAtOffset(10B10B").mangledNameHash());
+    ASSERT_EQ(0x000005f0u, ImmutableString("interpolateAtOffset(10B10B").mangledNameHash());
     ASSERT_EQ(0x00000529u, ImmutableString("interpolateAtOffset(20B10B").mangledNameHash());
     ASSERT_EQ(0x00000001u, ImmutableString("interpolateAtOffset(30B10B").mangledNameHash());
-    ASSERT_EQ(0x000006d6u, ImmutableString("atomicCounter(00G").mangledNameHash());
-    ASSERT_EQ(0x00000629u, ImmutableString("atomicCounterIncrement(00G").mangledNameHash());
+    ASSERT_EQ(0x000006d7u, ImmutableString("atomicCounter(00G").mangledNameHash());
+    ASSERT_EQ(0x0000062au, ImmutableString("atomicCounterIncrement(00G").mangledNameHash());
     ASSERT_EQ(0x000001d9u, ImmutableString("atomicCounterDecrement(00G").mangledNameHash());
-    ASSERT_EQ(0x000007a1u, ImmutableString("atomicCounterAdd(00G00E").mangledNameHash());
-    ASSERT_EQ(0x00000595u, ImmutableString("atomicCounterSubtract(00G00E").mangledNameHash());
+    ASSERT_EQ(0x000007a2u, ImmutableString("atomicCounterAdd(00G00E").mangledNameHash());
+    ASSERT_EQ(0x00000596u, ImmutableString("atomicCounterSubtract(00G00E").mangledNameHash());
     ASSERT_EQ(0x000004ccu, ImmutableString("atomicCounterMin(00G00E").mangledNameHash());
     ASSERT_EQ(0x00000454u, ImmutableString("atomicCounterMax(00G00E").mangledNameHash());
-    ASSERT_EQ(0x0000079eu, ImmutableString("atomicCounterAnd(00G00E").mangledNameHash());
+    ASSERT_EQ(0x0000079fu, ImmutableString("atomicCounterAnd(00G00E").mangledNameHash());
     ASSERT_EQ(0x00000377u, ImmutableString("atomicCounterOr(00G00E").mangledNameHash());
     ASSERT_EQ(0x00000544u, ImmutableString("atomicCounterXor(00G00E").mangledNameHash());
     ASSERT_EQ(0x00000455u, ImmutableString("atomicCounterExchange(00G00E").mangledNameHash());
@@ -1380,16 +1380,16 @@
     ASSERT_EQ(0x00000032u, ImmutableString("atomicAdd(00D00D").mangledNameHash());
     ASSERT_EQ(0x000002eau, ImmutableString("atomicMin(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000426u, ImmutableString("atomicMin(00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000839u, ImmutableString("atomicMax(00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000083au, ImmutableString("atomicMax(00E00E").mangledNameHash());
     ASSERT_EQ(0x000004a3u, ImmutableString("atomicMax(00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006d2u, ImmutableString("atomicAnd(00E00E").mangledNameHash());
+    ASSERT_EQ(0x000006d3u, ImmutableString("atomicAnd(00E00E").mangledNameHash());
     ASSERT_EQ(0x0000047du, ImmutableString("atomicAnd(00D00D").mangledNameHash());
     ASSERT_EQ(0x0000054cu, ImmutableString("atomicOr(00E00E").mangledNameHash());
     ASSERT_EQ(0x00000394u, ImmutableString("atomicOr(00D00D").mangledNameHash());
     ASSERT_EQ(0x00000182u, ImmutableString("atomicXor(00E00E").mangledNameHash());
     ASSERT_EQ(0x000000ebu, ImmutableString("atomicXor(00D00D").mangledNameHash());
     ASSERT_EQ(0x0000024fu, ImmutableString("atomicExchange(00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000769u, ImmutableString("atomicExchange(00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000076au, ImmutableString("atomicExchange(00D00D").mangledNameHash());
     ASSERT_EQ(0x000002c9u, ImmutableString("atomicCompSwap(00E00E00E").mangledNameHash());
     ASSERT_EQ(0x00000365u, ImmutableString("atomicCompSwap(00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000311u, ImmutableString("imageSize(00y").mangledNameHash());
@@ -1409,15 +1409,15 @@
     ASSERT_EQ(0x000003b2u, ImmutableString("imageSize(01M").mangledNameHash());
     ASSERT_EQ(0x000003bau, ImmutableString("imageSize(01Z").mangledNameHash());
     ASSERT_EQ(0x000003ccu, ImmutableString("imageSize(01a").mangledNameHash());
-    ASSERT_EQ(0x000005f6u, ImmutableString("imageSize(01b").mangledNameHash());
+    ASSERT_EQ(0x000005f7u, ImmutableString("imageSize(01b").mangledNameHash());
     ASSERT_EQ(0x000003cbu, ImmutableString("imageSize(01c").mangledNameHash());
     ASSERT_EQ(0x000003cfu, ImmutableString("imageSize(01d").mangledNameHash());
-    ASSERT_EQ(0x00000602u, ImmutableString("imageSize(01e").mangledNameHash());
+    ASSERT_EQ(0x00000603u, ImmutableString("imageSize(01e").mangledNameHash());
     ASSERT_EQ(0x0000056bu, ImmutableString("imageSize(01N").mangledNameHash());
-    ASSERT_EQ(0x000005b7u, ImmutableString("imageSize(01O").mangledNameHash());
+    ASSERT_EQ(0x000005b8u, ImmutableString("imageSize(01O").mangledNameHash());
     ASSERT_EQ(0x000003c1u, ImmutableString("imageSize(01P").mangledNameHash());
     ASSERT_EQ(0x000003cdu, ImmutableString("imageSize(01f").mangledNameHash());
-    ASSERT_EQ(0x00000600u, ImmutableString("imageSize(01g").mangledNameHash());
+    ASSERT_EQ(0x00000601u, ImmutableString("imageSize(01g").mangledNameHash());
     ASSERT_EQ(0x000003c7u, ImmutableString("imageSize(01h").mangledNameHash());
     ASSERT_EQ(0x000003c2u, ImmutableString("imageSize(01Q").mangledNameHash());
     ASSERT_EQ(0x000003bfu, ImmutableString("imageSize(01R").mangledNameHash());
@@ -1431,94 +1431,94 @@
     ASSERT_EQ(0x00000019u, ImmutableString("imageSamples(01T").mangledNameHash());
     ASSERT_EQ(0x00000018u, ImmutableString("imageSamples(01U").mangledNameHash());
     ASSERT_EQ(0x00000017u, ImmutableString("imageSamples(01V").mangledNameHash());
-    ASSERT_EQ(0x00000618u, ImmutableString("imageAtomicAdd(00y10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000619u, ImmutableString("imageAtomicAdd(00y10D00E").mangledNameHash());
     ASSERT_EQ(0x00000010u, ImmutableString("imageAtomicAdd(00z10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000084cu, ImmutableString("imageAtomicAdd(01A10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000084du, ImmutableString("imageAtomicAdd(01A10D00E").mangledNameHash());
     ASSERT_EQ(0x00000225u, ImmutableString("imageAtomicAdd(01B20D00E").mangledNameHash());
     ASSERT_EQ(0x0000033du, ImmutableString("imageAtomicAdd(01C20D00E").mangledNameHash());
     ASSERT_EQ(0x00000031u, ImmutableString("imageAtomicAdd(01D20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006e9u, ImmutableString("imageAtomicAdd(01H20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006eau, ImmutableString("imageAtomicAdd(01H20D00E").mangledNameHash());
     ASSERT_EQ(0x00000128u, ImmutableString("imageAtomicAdd(01I20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000062bu, ImmutableString("imageAtomicAdd(01J20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006c8u, ImmutableString("imageAtomicAdd(01f00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000062cu, ImmutableString("imageAtomicAdd(01J20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006c9u, ImmutableString("imageAtomicAdd(01f00D00E").mangledNameHash());
     ASSERT_EQ(0x00000388u, ImmutableString("imageAtomicAdd(01g00D00E").mangledNameHash());
     ASSERT_EQ(0x000001feu, ImmutableString("imageAtomicAdd(01h00D00E").mangledNameHash());
     ASSERT_EQ(0x000000c9u, ImmutableString("imageAtomicAdd(01E20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000684u, ImmutableString("imageAtomicAdd(01F20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000685u, ImmutableString("imageAtomicAdd(01F20D00E").mangledNameHash());
     ASSERT_EQ(0x0000039au, ImmutableString("imageAtomicAdd(01G20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000058fu, ImmutableString("imageAtomicAdd(01Z20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000590u, ImmutableString("imageAtomicAdd(01Z20D00E").mangledNameHash());
     ASSERT_EQ(0x000003fdu, ImmutableString("imageAtomicAdd(01a20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006a3u, ImmutableString("imageAtomicAdd(01b20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006a4u, ImmutableString("imageAtomicAdd(01b20D00E").mangledNameHash());
     ASSERT_EQ(0x0000008fu, ImmutableString("imageAtomicAdd(01K00D00E").mangledNameHash());
-    ASSERT_EQ(0x000005eau, ImmutableString("imageAtomicAdd(01L00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000799u, ImmutableString("imageAtomicAdd(01M00D00E").mangledNameHash());
+    ASSERT_EQ(0x000005ebu, ImmutableString("imageAtomicAdd(01L00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000079au, ImmutableString("imageAtomicAdd(01M00D00E").mangledNameHash());
     ASSERT_EQ(0x000003a0u, ImmutableString("imageAtomicAdd(01N10D00E").mangledNameHash());
-    ASSERT_EQ(0x000005d0u, ImmutableString("imageAtomicAdd(01O10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000714u, ImmutableString("imageAtomicAdd(01P10D00E").mangledNameHash());
-    ASSERT_EQ(0x000007e1u, ImmutableString("imageAtomicAdd(01W10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000074fu, ImmutableString("imageAtomicAdd(01X10D00E").mangledNameHash());
+    ASSERT_EQ(0x000005d1u, ImmutableString("imageAtomicAdd(01O10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000715u, ImmutableString("imageAtomicAdd(01P10D00E").mangledNameHash());
+    ASSERT_EQ(0x000007e2u, ImmutableString("imageAtomicAdd(01W10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000750u, ImmutableString("imageAtomicAdd(01X10D00E").mangledNameHash());
     ASSERT_EQ(0x0000017cu, ImmutableString("imageAtomicAdd(01Y10D00E").mangledNameHash());
     ASSERT_EQ(0x00000354u, ImmutableString("imageAtomicAdd(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000358u, ImmutableString("imageAtomicAdd(01R10D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000640u, ImmutableString("imageAtomicAdd(01S10D00D00E").mangledNameHash());
-    ASSERT_EQ(0x0000080cu, ImmutableString("imageAtomicAdd(01T20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000630u, ImmutableString("imageAtomicAdd(01U20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000641u, ImmutableString("imageAtomicAdd(01S10D00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000080du, ImmutableString("imageAtomicAdd(01T20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000631u, ImmutableString("imageAtomicAdd(01U20D00D00E").mangledNameHash());
     ASSERT_EQ(0x000001e6u, ImmutableString("imageAtomicAdd(01V20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000619u, ImmutableString("imageAtomicAdd(00y10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000061au, ImmutableString("imageAtomicAdd(00y10D00D").mangledNameHash());
     ASSERT_EQ(0x0000024du, ImmutableString("imageAtomicAdd(00z10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000084bu, ImmutableString("imageAtomicAdd(01A10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000084cu, ImmutableString("imageAtomicAdd(01A10D00D").mangledNameHash());
     ASSERT_EQ(0x00000224u, ImmutableString("imageAtomicAdd(01B20D00D").mangledNameHash());
     ASSERT_EQ(0x000002bdu, ImmutableString("imageAtomicAdd(01C20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000707u, ImmutableString("imageAtomicAdd(01D20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006e8u, ImmutableString("imageAtomicAdd(01H20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000071fu, ImmutableString("imageAtomicAdd(01I20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000062au, ImmutableString("imageAtomicAdd(01J20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006c6u, ImmutableString("imageAtomicAdd(01f00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000708u, ImmutableString("imageAtomicAdd(01D20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006e9u, ImmutableString("imageAtomicAdd(01H20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000720u, ImmutableString("imageAtomicAdd(01I20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000062bu, ImmutableString("imageAtomicAdd(01J20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006c7u, ImmutableString("imageAtomicAdd(01f00D00D").mangledNameHash());
     ASSERT_EQ(0x0000020du, ImmutableString("imageAtomicAdd(01g00D00D").mangledNameHash());
     ASSERT_EQ(0x000001fdu, ImmutableString("imageAtomicAdd(01h00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000723u, ImmutableString("imageAtomicAdd(01E20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000683u, ImmutableString("imageAtomicAdd(01F20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000724u, ImmutableString("imageAtomicAdd(01E20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000684u, ImmutableString("imageAtomicAdd(01F20D00D").mangledNameHash());
     ASSERT_EQ(0x0000039bu, ImmutableString("imageAtomicAdd(01G20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000058eu, ImmutableString("imageAtomicAdd(01Z20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000700u, ImmutableString("imageAtomicAdd(01a20D00D").mangledNameHash());
-    ASSERT_EQ(0x000005d5u, ImmutableString("imageAtomicAdd(01b20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000058fu, ImmutableString("imageAtomicAdd(01Z20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000701u, ImmutableString("imageAtomicAdd(01a20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005d6u, ImmutableString("imageAtomicAdd(01b20D00D").mangledNameHash());
     ASSERT_EQ(0x00000090u, ImmutableString("imageAtomicAdd(01K00D00D").mangledNameHash());
     ASSERT_EQ(0x00000274u, ImmutableString("imageAtomicAdd(01L00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000079au, ImmutableString("imageAtomicAdd(01M00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000079bu, ImmutableString("imageAtomicAdd(01M00D00D").mangledNameHash());
     ASSERT_EQ(0x000003a1u, ImmutableString("imageAtomicAdd(01N10D00D").mangledNameHash());
-    ASSERT_EQ(0x000005cfu, ImmutableString("imageAtomicAdd(01O10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000715u, ImmutableString("imageAtomicAdd(01P10D00D").mangledNameHash());
-    ASSERT_EQ(0x000007e0u, ImmutableString("imageAtomicAdd(01W10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000752u, ImmutableString("imageAtomicAdd(01X10D00D").mangledNameHash());
+    ASSERT_EQ(0x000005d0u, ImmutableString("imageAtomicAdd(01O10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000716u, ImmutableString("imageAtomicAdd(01P10D00D").mangledNameHash());
+    ASSERT_EQ(0x000007e1u, ImmutableString("imageAtomicAdd(01W10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000753u, ImmutableString("imageAtomicAdd(01X10D00D").mangledNameHash());
     ASSERT_EQ(0x0000017bu, ImmutableString("imageAtomicAdd(01Y10D00D").mangledNameHash());
     ASSERT_EQ(0x00000376u, ImmutableString("imageAtomicAdd(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000357u, ImmutableString("imageAtomicAdd(01R10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000002d6u, ImmutableString("imageAtomicAdd(01S10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000080du, ImmutableString("imageAtomicAdd(01T20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000062fu, ImmutableString("imageAtomicAdd(01U20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000080eu, ImmutableString("imageAtomicAdd(01T20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000630u, ImmutableString("imageAtomicAdd(01U20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000002f6u, ImmutableString("imageAtomicAdd(01V20D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000108u, ImmutableString("imageAtomicMin(00y10D00E").mangledNameHash());
-    ASSERT_EQ(0x000005a1u, ImmutableString("imageAtomicMin(00z10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000057fu, ImmutableString("imageAtomicMin(01A10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000083au, ImmutableString("imageAtomicMin(01B20D00E").mangledNameHash());
+    ASSERT_EQ(0x000005a2u, ImmutableString("imageAtomicMin(00z10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000580u, ImmutableString("imageAtomicMin(01A10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000083bu, ImmutableString("imageAtomicMin(01B20D00E").mangledNameHash());
     ASSERT_EQ(0x000002a9u, ImmutableString("imageAtomicMin(01C20D00E").mangledNameHash());
     ASSERT_EQ(0x0000040eu, ImmutableString("imageAtomicMin(01D20D00E").mangledNameHash());
     ASSERT_EQ(0x00000226u, ImmutableString("imageAtomicMin(01H20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000728u, ImmutableString("imageAtomicMin(01I20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000729u, ImmutableString("imageAtomicMin(01I20D00E").mangledNameHash());
     ASSERT_EQ(0x0000018cu, ImmutableString("imageAtomicMin(01J20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006b7u, ImmutableString("imageAtomicMin(01f00D00E").mangledNameHash());
+    ASSERT_EQ(0x000006b8u, ImmutableString("imageAtomicMin(01f00D00E").mangledNameHash());
     ASSERT_EQ(0x0000037fu, ImmutableString("imageAtomicMin(01g00D00E").mangledNameHash());
     ASSERT_EQ(0x0000011du, ImmutableString("imageAtomicMin(01h00D00E").mangledNameHash());
-    ASSERT_EQ(0x000005c9u, ImmutableString("imageAtomicMin(01E20D00E").mangledNameHash());
+    ASSERT_EQ(0x000005cau, ImmutableString("imageAtomicMin(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x0000013du, ImmutableString("imageAtomicMin(01F20D00E").mangledNameHash());
     ASSERT_EQ(0x0000027du, ImmutableString("imageAtomicMin(01G20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006a1u, ImmutableString("imageAtomicMin(01Z20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006a4u, ImmutableString("imageAtomicMin(01a20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006a2u, ImmutableString("imageAtomicMin(01Z20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006a5u, ImmutableString("imageAtomicMin(01a20D00E").mangledNameHash());
     ASSERT_EQ(0x00000291u, ImmutableString("imageAtomicMin(01b20D00E").mangledNameHash());
-    ASSERT_EQ(0x000007cfu, ImmutableString("imageAtomicMin(01K00D00E").mangledNameHash());
+    ASSERT_EQ(0x000007d0u, ImmutableString("imageAtomicMin(01K00D00E").mangledNameHash());
     ASSERT_EQ(0x00000549u, ImmutableString("imageAtomicMin(01L00D00E").mangledNameHash());
     ASSERT_EQ(0x0000048eu, ImmutableString("imageAtomicMin(01M00D00E").mangledNameHash());
-    ASSERT_EQ(0x000007a9u, ImmutableString("imageAtomicMin(01N10D00E").mangledNameHash());
+    ASSERT_EQ(0x000007aau, ImmutableString("imageAtomicMin(01N10D00E").mangledNameHash());
     ASSERT_EQ(0x00000490u, ImmutableString("imageAtomicMin(01O10D00E").mangledNameHash());
     ASSERT_EQ(0x0000033cu, ImmutableString("imageAtomicMin(01P10D00E").mangledNameHash());
     ASSERT_EQ(0x00000312u, ImmutableString("imageAtomicMin(01W10D00E").mangledNameHash());
@@ -1526,32 +1526,32 @@
     ASSERT_EQ(0x0000010fu, ImmutableString("imageAtomicMin(01Y10D00E").mangledNameHash());
     ASSERT_EQ(0x000002ecu, ImmutableString("imageAtomicMin(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000051u, ImmutableString("imageAtomicMin(01R10D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000705u, ImmutableString("imageAtomicMin(01S10D00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000706u, ImmutableString("imageAtomicMin(01S10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000153u, ImmutableString("imageAtomicMin(01T20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x0000073bu, ImmutableString("imageAtomicMin(01U20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000672u, ImmutableString("imageAtomicMin(01V20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000073cu, ImmutableString("imageAtomicMin(01U20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000673u, ImmutableString("imageAtomicMin(01V20D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000107u, ImmutableString("imageAtomicMin(00y10D00D").mangledNameHash());
-    ASSERT_EQ(0x000005a2u, ImmutableString("imageAtomicMin(00z10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000580u, ImmutableString("imageAtomicMin(01A10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000083bu, ImmutableString("imageAtomicMin(01B20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005a3u, ImmutableString("imageAtomicMin(00z10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000581u, ImmutableString("imageAtomicMin(01A10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000083cu, ImmutableString("imageAtomicMin(01B20D00D").mangledNameHash());
     ASSERT_EQ(0x000002a8u, ImmutableString("imageAtomicMin(01C20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000768u, ImmutableString("imageAtomicMin(01D20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000769u, ImmutableString("imageAtomicMin(01D20D00D").mangledNameHash());
     ASSERT_EQ(0x0000041fu, ImmutableString("imageAtomicMin(01H20D00D").mangledNameHash());
     ASSERT_EQ(0x000000dcu, ImmutableString("imageAtomicMin(01I20D00D").mangledNameHash());
     ASSERT_EQ(0x000003d2u, ImmutableString("imageAtomicMin(01J20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006b8u, ImmutableString("imageAtomicMin(01f00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000794u, ImmutableString("imageAtomicMin(01g00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006b9u, ImmutableString("imageAtomicMin(01f00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000795u, ImmutableString("imageAtomicMin(01g00D00D").mangledNameHash());
     ASSERT_EQ(0x0000011eu, ImmutableString("imageAtomicMin(01h00D00D").mangledNameHash());
-    ASSERT_EQ(0x000005c8u, ImmutableString("imageAtomicMin(01E20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005c9u, ImmutableString("imageAtomicMin(01E20D00D").mangledNameHash());
     ASSERT_EQ(0x0000013eu, ImmutableString("imageAtomicMin(01F20D00D").mangledNameHash());
     ASSERT_EQ(0x0000027cu, ImmutableString("imageAtomicMin(01G20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006a2u, ImmutableString("imageAtomicMin(01Z20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006a3u, ImmutableString("imageAtomicMin(01Z20D00D").mangledNameHash());
     ASSERT_EQ(0x0000031bu, ImmutableString("imageAtomicMin(01a20D00D").mangledNameHash());
     ASSERT_EQ(0x00000292u, ImmutableString("imageAtomicMin(01b20D00D").mangledNameHash());
-    ASSERT_EQ(0x000007ceu, ImmutableString("imageAtomicMin(01K00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000068du, ImmutableString("imageAtomicMin(01L00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007cfu, ImmutableString("imageAtomicMin(01K00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000068eu, ImmutableString("imageAtomicMin(01L00D00D").mangledNameHash());
     ASSERT_EQ(0x0000048du, ImmutableString("imageAtomicMin(01M00D00D").mangledNameHash());
-    ASSERT_EQ(0x000007a8u, ImmutableString("imageAtomicMin(01N10D00D").mangledNameHash());
+    ASSERT_EQ(0x000007a9u, ImmutableString("imageAtomicMin(01N10D00D").mangledNameHash());
     ASSERT_EQ(0x00000491u, ImmutableString("imageAtomicMin(01O10D00D").mangledNameHash());
     ASSERT_EQ(0x000002b8u, ImmutableString("imageAtomicMin(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x000001a9u, ImmutableString("imageAtomicMin(01W10D00D").mangledNameHash());
@@ -1559,65 +1559,65 @@
     ASSERT_EQ(0x0000003au, ImmutableString("imageAtomicMin(01Y10D00D").mangledNameHash());
     ASSERT_EQ(0x000002ebu, ImmutableString("imageAtomicMin(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000052u, ImmutableString("imageAtomicMin(01R10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000704u, ImmutableString("imageAtomicMin(01S10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000705u, ImmutableString("imageAtomicMin(01S10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000152u, ImmutableString("imageAtomicMin(01T20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000073cu, ImmutableString("imageAtomicMin(01U20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000671u, ImmutableString("imageAtomicMin(01V20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000073du, ImmutableString("imageAtomicMin(01U20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000672u, ImmutableString("imageAtomicMin(01V20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000047cu, ImmutableString("imageAtomicMax(00y10D00E").mangledNameHash());
     ASSERT_EQ(0x000003f4u, ImmutableString("imageAtomicMax(00z10D00E").mangledNameHash());
     ASSERT_EQ(0x000000e0u, ImmutableString("imageAtomicMax(01A10D00E").mangledNameHash());
     ASSERT_EQ(0x000004ecu, ImmutableString("imageAtomicMax(01B20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000070cu, ImmutableString("imageAtomicMax(01C20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000070du, ImmutableString("imageAtomicMax(01C20D00E").mangledNameHash());
     ASSERT_EQ(0x000002dau, ImmutableString("imageAtomicMax(01D20D00E").mangledNameHash());
     ASSERT_EQ(0x0000032du, ImmutableString("imageAtomicMax(01H20D00E").mangledNameHash());
     ASSERT_EQ(0x00000553u, ImmutableString("imageAtomicMax(01I20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000766u, ImmutableString("imageAtomicMax(01J20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000643u, ImmutableString("imageAtomicMax(01f00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000607u, ImmutableString("imageAtomicMax(01g00D00E").mangledNameHash());
-    ASSERT_EQ(0x0000074cu, ImmutableString("imageAtomicMax(01h00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000767u, ImmutableString("imageAtomicMax(01J20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000644u, ImmutableString("imageAtomicMax(01f00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000608u, ImmutableString("imageAtomicMax(01g00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000074du, ImmutableString("imageAtomicMax(01h00D00E").mangledNameHash());
     ASSERT_EQ(0x00000408u, ImmutableString("imageAtomicMax(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x0000050eu, ImmutableString("imageAtomicMax(01F20D00E").mangledNameHash());
-    ASSERT_EQ(0x000005fbu, ImmutableString("imageAtomicMax(01G20D00E").mangledNameHash());
+    ASSERT_EQ(0x000005fcu, ImmutableString("imageAtomicMax(01G20D00E").mangledNameHash());
     ASSERT_EQ(0x000003bcu, ImmutableString("imageAtomicMax(01Z20D00E").mangledNameHash());
     ASSERT_EQ(0x00000509u, ImmutableString("imageAtomicMax(01a20D00E").mangledNameHash());
     ASSERT_EQ(0x0000027bu, ImmutableString("imageAtomicMax(01b20D00E").mangledNameHash());
     ASSERT_EQ(0x00000058u, ImmutableString("imageAtomicMax(01K00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000755u, ImmutableString("imageAtomicMax(01L00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000721u, ImmutableString("imageAtomicMax(01M00D00E").mangledNameHash());
-    ASSERT_EQ(0x0000073fu, ImmutableString("imageAtomicMax(01N10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000756u, ImmutableString("imageAtomicMax(01L00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000722u, ImmutableString("imageAtomicMax(01M00D00E").mangledNameHash());
+    ASSERT_EQ(0x00000740u, ImmutableString("imageAtomicMax(01N10D00E").mangledNameHash());
     ASSERT_EQ(0x0000043bu, ImmutableString("imageAtomicMax(01O10D00E").mangledNameHash());
     ASSERT_EQ(0x00000294u, ImmutableString("imageAtomicMax(01P10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000062du, ImmutableString("imageAtomicMax(01W10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000062eu, ImmutableString("imageAtomicMax(01W10D00E").mangledNameHash());
     ASSERT_EQ(0x00000278u, ImmutableString("imageAtomicMax(01X10D00E").mangledNameHash());
     ASSERT_EQ(0x000000a4u, ImmutableString("imageAtomicMax(01Y10D00E").mangledNameHash());
     ASSERT_EQ(0x000000bau, ImmutableString("imageAtomicMax(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000138u, ImmutableString("imageAtomicMax(01R10D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000003eu, ImmutableString("imageAtomicMax(01S10D00D00E").mangledNameHash());
-    ASSERT_EQ(0x000006a8u, ImmutableString("imageAtomicMax(01T20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x000006a9u, ImmutableString("imageAtomicMax(01T20D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000014fu, ImmutableString("imageAtomicMax(01U20D00D00E").mangledNameHash());
     ASSERT_EQ(0x000003fbu, ImmutableString("imageAtomicMax(01V20D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000047bu, ImmutableString("imageAtomicMax(00y10D00D").mangledNameHash());
     ASSERT_EQ(0x000003f5u, ImmutableString("imageAtomicMax(00z10D00D").mangledNameHash());
     ASSERT_EQ(0x000000e1u, ImmutableString("imageAtomicMax(01A10D00D").mangledNameHash());
     ASSERT_EQ(0x00000387u, ImmutableString("imageAtomicMax(01B20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000070bu, ImmutableString("imageAtomicMax(01C20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000070cu, ImmutableString("imageAtomicMax(01C20D00D").mangledNameHash());
     ASSERT_EQ(0x000002dbu, ImmutableString("imageAtomicMax(01D20D00D").mangledNameHash());
     ASSERT_EQ(0x0000032eu, ImmutableString("imageAtomicMax(01H20D00D").mangledNameHash());
     ASSERT_EQ(0x00000552u, ImmutableString("imageAtomicMax(01I20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000767u, ImmutableString("imageAtomicMax(01J20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000644u, ImmutableString("imageAtomicMax(01f00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000606u, ImmutableString("imageAtomicMax(01g00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000768u, ImmutableString("imageAtomicMax(01J20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000645u, ImmutableString("imageAtomicMax(01f00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000607u, ImmutableString("imageAtomicMax(01g00D00D").mangledNameHash());
     ASSERT_EQ(0x000002b2u, ImmutableString("imageAtomicMax(01h00D00D").mangledNameHash());
     ASSERT_EQ(0x00000407u, ImmutableString("imageAtomicMax(01E20D00D").mangledNameHash());
     ASSERT_EQ(0x0000050fu, ImmutableString("imageAtomicMax(01F20D00D").mangledNameHash());
-    ASSERT_EQ(0x000005fau, ImmutableString("imageAtomicMax(01G20D00D").mangledNameHash());
-    ASSERT_EQ(0x000007f8u, ImmutableString("imageAtomicMax(01Z20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005fbu, ImmutableString("imageAtomicMax(01G20D00D").mangledNameHash());
+    ASSERT_EQ(0x000007f9u, ImmutableString("imageAtomicMax(01Z20D00D").mangledNameHash());
     ASSERT_EQ(0x00000466u, ImmutableString("imageAtomicMax(01a20D00D").mangledNameHash());
     ASSERT_EQ(0x000001d5u, ImmutableString("imageAtomicMax(01b20D00D").mangledNameHash());
     ASSERT_EQ(0x00000057u, ImmutableString("imageAtomicMax(01K00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000756u, ImmutableString("imageAtomicMax(01L00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000720u, ImmutableString("imageAtomicMax(01M00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000073eu, ImmutableString("imageAtomicMax(01N10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000757u, ImmutableString("imageAtomicMax(01L00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000721u, ImmutableString("imageAtomicMax(01M00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000073fu, ImmutableString("imageAtomicMax(01N10D00D").mangledNameHash());
     ASSERT_EQ(0x0000043cu, ImmutableString("imageAtomicMax(01O10D00D").mangledNameHash());
     ASSERT_EQ(0x00000293u, ImmutableString("imageAtomicMax(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x000002feu, ImmutableString("imageAtomicMax(01W10D00D").mangledNameHash());
@@ -1626,49 +1626,49 @@
     ASSERT_EQ(0x000000b9u, ImmutableString("imageAtomicMax(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000139u, ImmutableString("imageAtomicMax(01R10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000125u, ImmutableString("imageAtomicMax(01S10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006a7u, ImmutableString("imageAtomicMax(01T20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006a8u, ImmutableString("imageAtomicMax(01T20D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000150u, ImmutableString("imageAtomicMax(01U20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006deu, ImmutableString("imageAtomicMax(01V20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000827u, ImmutableString("imageAtomicAnd(00y10D00E").mangledNameHash());
-    ASSERT_EQ(0x000007d2u, ImmutableString("imageAtomicAnd(00z10D00E").mangledNameHash());
+    ASSERT_EQ(0x000006dfu, ImmutableString("imageAtomicMax(01V20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000828u, ImmutableString("imageAtomicAnd(00y10D00E").mangledNameHash());
+    ASSERT_EQ(0x000007d3u, ImmutableString("imageAtomicAnd(00z10D00E").mangledNameHash());
     ASSERT_EQ(0x000000ffu, ImmutableString("imageAtomicAnd(01A10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000063fu, ImmutableString("imageAtomicAnd(01B20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000640u, ImmutableString("imageAtomicAnd(01B20D00E").mangledNameHash());
     ASSERT_EQ(0x0000006au, ImmutableString("imageAtomicAnd(01C20D00E").mangledNameHash());
-    ASSERT_EQ(0x000006b4u, ImmutableString("imageAtomicAnd(01D20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000077fu, ImmutableString("imageAtomicAnd(01H20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000075eu, ImmutableString("imageAtomicAnd(01I20D00E").mangledNameHash());
+    ASSERT_EQ(0x000006b5u, ImmutableString("imageAtomicAnd(01D20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000780u, ImmutableString("imageAtomicAnd(01H20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000075fu, ImmutableString("imageAtomicAnd(01I20D00E").mangledNameHash());
     ASSERT_EQ(0x00000123u, ImmutableString("imageAtomicAnd(01J20D00E").mangledNameHash());
     ASSERT_EQ(0x00000016u, ImmutableString("imageAtomicAnd(01f00D00E").mangledNameHash());
     ASSERT_EQ(0x000001f3u, ImmutableString("imageAtomicAnd(01g00D00E").mangledNameHash());
     ASSERT_EQ(0x000003a4u, ImmutableString("imageAtomicAnd(01h00D00E").mangledNameHash());
     ASSERT_EQ(0x00000499u, ImmutableString("imageAtomicAnd(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x000002aau, ImmutableString("imageAtomicAnd(01F20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000805u, ImmutableString("imageAtomicAnd(01G20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000806u, ImmutableString("imageAtomicAnd(01G20D00E").mangledNameHash());
     ASSERT_EQ(0x00000175u, ImmutableString("imageAtomicAnd(01Z20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000793u, ImmutableString("imageAtomicAnd(01a20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000794u, ImmutableString("imageAtomicAnd(01a20D00E").mangledNameHash());
     ASSERT_EQ(0x00000094u, ImmutableString("imageAtomicAnd(01b20D00E").mangledNameHash());
     ASSERT_EQ(0x000004afu, ImmutableString("imageAtomicAnd(01K00D00E").mangledNameHash());
     ASSERT_EQ(0x0000025bu, ImmutableString("imageAtomicAnd(01L00D00E").mangledNameHash());
     ASSERT_EQ(0x00000214u, ImmutableString("imageAtomicAnd(01M00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000692u, ImmutableString("imageAtomicAnd(01N10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000751u, ImmutableString("imageAtomicAnd(01O10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000613u, ImmutableString("imageAtomicAnd(01P10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000693u, ImmutableString("imageAtomicAnd(01N10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000752u, ImmutableString("imageAtomicAnd(01O10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000614u, ImmutableString("imageAtomicAnd(01P10D00E").mangledNameHash());
     ASSERT_EQ(0x000004dbu, ImmutableString("imageAtomicAnd(01W10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000699u, ImmutableString("imageAtomicAnd(01X10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000599u, ImmutableString("imageAtomicAnd(01Y10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000061au, ImmutableString("imageAtomicAnd(01Q10D00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000069au, ImmutableString("imageAtomicAnd(01X10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000059au, ImmutableString("imageAtomicAnd(01Y10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000061bu, ImmutableString("imageAtomicAnd(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x000004a5u, ImmutableString("imageAtomicAnd(01R10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000467u, ImmutableString("imageAtomicAnd(01S10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000194u, ImmutableString("imageAtomicAnd(01T20D00D00E").mangledNameHash());
     ASSERT_EQ(0x000001c3u, ImmutableString("imageAtomicAnd(01U20D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000062u, ImmutableString("imageAtomicAnd(01V20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000828u, ImmutableString("imageAtomicAnd(00y10D00D").mangledNameHash());
-    ASSERT_EQ(0x000007d1u, ImmutableString("imageAtomicAnd(00z10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000829u, ImmutableString("imageAtomicAnd(00y10D00D").mangledNameHash());
+    ASSERT_EQ(0x000007d2u, ImmutableString("imageAtomicAnd(00z10D00D").mangledNameHash());
     ASSERT_EQ(0x00000030u, ImmutableString("imageAtomicAnd(01A10D00D").mangledNameHash());
-    ASSERT_EQ(0x000005c0u, ImmutableString("imageAtomicAnd(01B20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005c1u, ImmutableString("imageAtomicAnd(01B20D00D").mangledNameHash());
     ASSERT_EQ(0x0000006du, ImmutableString("imageAtomicAnd(01C20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006b3u, ImmutableString("imageAtomicAnd(01D20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000077eu, ImmutableString("imageAtomicAnd(01H20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006b4u, ImmutableString("imageAtomicAnd(01D20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000077fu, ImmutableString("imageAtomicAnd(01H20D00D").mangledNameHash());
     ASSERT_EQ(0x00000271u, ImmutableString("imageAtomicAnd(01I20D00D").mangledNameHash());
     ASSERT_EQ(0x00000122u, ImmutableString("imageAtomicAnd(01J20D00D").mangledNameHash());
     ASSERT_EQ(0x00000015u, ImmutableString("imageAtomicAnd(01f00D00D").mangledNameHash());
@@ -1676,20 +1676,20 @@
     ASSERT_EQ(0x00000398u, ImmutableString("imageAtomicAnd(01h00D00D").mangledNameHash());
     ASSERT_EQ(0x0000049au, ImmutableString("imageAtomicAnd(01E20D00D").mangledNameHash());
     ASSERT_EQ(0x00000337u, ImmutableString("imageAtomicAnd(01F20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000806u, ImmutableString("imageAtomicAnd(01G20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000807u, ImmutableString("imageAtomicAnd(01G20D00D").mangledNameHash());
     ASSERT_EQ(0x0000003bu, ImmutableString("imageAtomicAnd(01Z20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000796u, ImmutableString("imageAtomicAnd(01a20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000740u, ImmutableString("imageAtomicAnd(01b20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000797u, ImmutableString("imageAtomicAnd(01a20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000741u, ImmutableString("imageAtomicAnd(01b20D00D").mangledNameHash());
     ASSERT_EQ(0x000004b0u, ImmutableString("imageAtomicAnd(01K00D00D").mangledNameHash());
     ASSERT_EQ(0x0000025au, ImmutableString("imageAtomicAnd(01L00D00D").mangledNameHash());
     ASSERT_EQ(0x00000215u, ImmutableString("imageAtomicAnd(01M00D00D").mangledNameHash());
     ASSERT_EQ(0x00000562u, ImmutableString("imageAtomicAnd(01N10D00D").mangledNameHash());
     ASSERT_EQ(0x000000a7u, ImmutableString("imageAtomicAnd(01O10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000614u, ImmutableString("imageAtomicAnd(01P10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000615u, ImmutableString("imageAtomicAnd(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x000004dau, ImmutableString("imageAtomicAnd(01W10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000069bu, ImmutableString("imageAtomicAnd(01X10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000598u, ImmutableString("imageAtomicAnd(01Y10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000061bu, ImmutableString("imageAtomicAnd(01Q10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000069cu, ImmutableString("imageAtomicAnd(01X10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000599u, ImmutableString("imageAtomicAnd(01Y10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000061cu, ImmutableString("imageAtomicAnd(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000c8u, ImmutableString("imageAtomicAnd(01R10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000468u, ImmutableString("imageAtomicAnd(01S10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000195u, ImmutableString("imageAtomicAnd(01T20D00D00D").mangledNameHash());
@@ -1701,32 +1701,32 @@
     ASSERT_EQ(0x000003a6u, ImmutableString("imageAtomicOr(01B20D00E").mangledNameHash());
     ASSERT_EQ(0x0000030bu, ImmutableString("imageAtomicOr(01C20D00E").mangledNameHash());
     ASSERT_EQ(0x000004f6u, ImmutableString("imageAtomicOr(01D20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000084eu, ImmutableString("imageAtomicOr(01H20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000084fu, ImmutableString("imageAtomicOr(01H20D00E").mangledNameHash());
     ASSERT_EQ(0x0000044du, ImmutableString("imageAtomicOr(01I20D00E").mangledNameHash());
     ASSERT_EQ(0x0000050cu, ImmutableString("imageAtomicOr(01J20D00E").mangledNameHash());
     ASSERT_EQ(0x00000261u, ImmutableString("imageAtomicOr(01f00D00E").mangledNameHash());
     ASSERT_EQ(0x00000546u, ImmutableString("imageAtomicOr(01g00D00E").mangledNameHash());
-    ASSERT_EQ(0x0000057bu, ImmutableString("imageAtomicOr(01h00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000057cu, ImmutableString("imageAtomicOr(01h00D00E").mangledNameHash());
     ASSERT_EQ(0x000000b4u, ImmutableString("imageAtomicOr(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x000002e4u, ImmutableString("imageAtomicOr(01F20D00E").mangledNameHash());
     ASSERT_EQ(0x000002a7u, ImmutableString("imageAtomicOr(01G20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000626u, ImmutableString("imageAtomicOr(01Z20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000058au, ImmutableString("imageAtomicOr(01a20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000836u, ImmutableString("imageAtomicOr(01b20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000627u, ImmutableString("imageAtomicOr(01Z20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000058bu, ImmutableString("imageAtomicOr(01a20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000837u, ImmutableString("imageAtomicOr(01b20D00E").mangledNameHash());
     ASSERT_EQ(0x000004a2u, ImmutableString("imageAtomicOr(01K00D00E").mangledNameHash());
     ASSERT_EQ(0x0000012bu, ImmutableString("imageAtomicOr(01L00D00E").mangledNameHash());
     ASSERT_EQ(0x000003efu, ImmutableString("imageAtomicOr(01M00D00E").mangledNameHash());
     ASSERT_EQ(0x0000004au, ImmutableString("imageAtomicOr(01N10D00E").mangledNameHash());
-    ASSERT_EQ(0x000005d3u, ImmutableString("imageAtomicOr(01O10D00E").mangledNameHash());
+    ASSERT_EQ(0x000005d4u, ImmutableString("imageAtomicOr(01O10D00E").mangledNameHash());
     ASSERT_EQ(0x000000eeu, ImmutableString("imageAtomicOr(01P10D00E").mangledNameHash());
     ASSERT_EQ(0x00000366u, ImmutableString("imageAtomicOr(01W10D00E").mangledNameHash());
-    ASSERT_EQ(0x0000066cu, ImmutableString("imageAtomicOr(01X10D00E").mangledNameHash());
+    ASSERT_EQ(0x0000066du, ImmutableString("imageAtomicOr(01X10D00E").mangledNameHash());
     ASSERT_EQ(0x00000199u, ImmutableString("imageAtomicOr(01Y10D00E").mangledNameHash());
     ASSERT_EQ(0x00000037u, ImmutableString("imageAtomicOr(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x000000c4u, ImmutableString("imageAtomicOr(01R10D00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000849u, ImmutableString("imageAtomicOr(01S10D00D00E").mangledNameHash());
+    ASSERT_EQ(0x0000084au, ImmutableString("imageAtomicOr(01S10D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000037au, ImmutableString("imageAtomicOr(01T20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x000006bau, ImmutableString("imageAtomicOr(01U20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x000006bbu, ImmutableString("imageAtomicOr(01U20D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000460u, ImmutableString("imageAtomicOr(01V20D00D00E").mangledNameHash());
     ASSERT_EQ(0x000002e2u, ImmutableString("imageAtomicOr(00y10D00D").mangledNameHash());
     ASSERT_EQ(0x00000003u, ImmutableString("imageAtomicOr(00z10D00D").mangledNameHash());
@@ -1734,48 +1734,48 @@
     ASSERT_EQ(0x000003a7u, ImmutableString("imageAtomicOr(01B20D00D").mangledNameHash());
     ASSERT_EQ(0x0000030au, ImmutableString("imageAtomicOr(01C20D00D").mangledNameHash());
     ASSERT_EQ(0x000004f8u, ImmutableString("imageAtomicOr(01D20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000084fu, ImmutableString("imageAtomicOr(01H20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000667u, ImmutableString("imageAtomicOr(01I20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000850u, ImmutableString("imageAtomicOr(01H20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000668u, ImmutableString("imageAtomicOr(01I20D00D").mangledNameHash());
     ASSERT_EQ(0x0000050du, ImmutableString("imageAtomicOr(01J20D00D").mangledNameHash());
     ASSERT_EQ(0x00000262u, ImmutableString("imageAtomicOr(01f00D00D").mangledNameHash());
     ASSERT_EQ(0x00000545u, ImmutableString("imageAtomicOr(01g00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000057cu, ImmutableString("imageAtomicOr(01h00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000057du, ImmutableString("imageAtomicOr(01h00D00D").mangledNameHash());
     ASSERT_EQ(0x000000b3u, ImmutableString("imageAtomicOr(01E20D00D").mangledNameHash());
     ASSERT_EQ(0x000002e5u, ImmutableString("imageAtomicOr(01F20D00D").mangledNameHash());
     ASSERT_EQ(0x000002a6u, ImmutableString("imageAtomicOr(01G20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000627u, ImmutableString("imageAtomicOr(01Z20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000628u, ImmutableString("imageAtomicOr(01Z20D00D").mangledNameHash());
     ASSERT_EQ(0x00000263u, ImmutableString("imageAtomicOr(01a20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000837u, ImmutableString("imageAtomicOr(01b20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000838u, ImmutableString("imageAtomicOr(01b20D00D").mangledNameHash());
     ASSERT_EQ(0x000004a1u, ImmutableString("imageAtomicOr(01K00D00D").mangledNameHash());
     ASSERT_EQ(0x0000012cu, ImmutableString("imageAtomicOr(01L00D00D").mangledNameHash());
     ASSERT_EQ(0x000000a2u, ImmutableString("imageAtomicOr(01M00D00D").mangledNameHash());
     ASSERT_EQ(0x00000049u, ImmutableString("imageAtomicOr(01N10D00D").mangledNameHash());
-    ASSERT_EQ(0x000005d4u, ImmutableString("imageAtomicOr(01O10D00D").mangledNameHash());
+    ASSERT_EQ(0x000005d5u, ImmutableString("imageAtomicOr(01O10D00D").mangledNameHash());
     ASSERT_EQ(0x000000edu, ImmutableString("imageAtomicOr(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x00000367u, ImmutableString("imageAtomicOr(01W10D00D").mangledNameHash());
-    ASSERT_EQ(0x0000066au, ImmutableString("imageAtomicOr(01X10D00D").mangledNameHash());
+    ASSERT_EQ(0x0000066bu, ImmutableString("imageAtomicOr(01X10D00D").mangledNameHash());
     ASSERT_EQ(0x0000019au, ImmutableString("imageAtomicOr(01Y10D00D").mangledNameHash());
     ASSERT_EQ(0x00000036u, ImmutableString("imageAtomicOr(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000c5u, ImmutableString("imageAtomicOr(01R10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000848u, ImmutableString("imageAtomicOr(01S10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000849u, ImmutableString("imageAtomicOr(01S10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000379u, ImmutableString("imageAtomicOr(01T20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006c3u, ImmutableString("imageAtomicOr(01U20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006c4u, ImmutableString("imageAtomicOr(01U20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000045fu, ImmutableString("imageAtomicOr(01V20D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000447u, ImmutableString("imageAtomicXor(00y10D00E").mangledNameHash());
     ASSERT_EQ(0x0000007bu, ImmutableString("imageAtomicXor(00z10D00E").mangledNameHash());
     ASSERT_EQ(0x00000421u, ImmutableString("imageAtomicXor(01A10D00E").mangledNameHash());
     ASSERT_EQ(0x000000c2u, ImmutableString("imageAtomicXor(01B20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000596u, ImmutableString("imageAtomicXor(01C20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000063au, ImmutableString("imageAtomicXor(01D20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000597u, ImmutableString("imageAtomicXor(01C20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000063bu, ImmutableString("imageAtomicXor(01D20D00E").mangledNameHash());
     ASSERT_EQ(0x000000acu, ImmutableString("imageAtomicXor(01H20D00E").mangledNameHash());
     ASSERT_EQ(0x00000203u, ImmutableString("imageAtomicXor(01I20D00E").mangledNameHash());
-    ASSERT_EQ(0x000007eau, ImmutableString("imageAtomicXor(01J20D00E").mangledNameHash());
-    ASSERT_EQ(0x000005b0u, ImmutableString("imageAtomicXor(01f00D00E").mangledNameHash());
+    ASSERT_EQ(0x000007ebu, ImmutableString("imageAtomicXor(01J20D00E").mangledNameHash());
+    ASSERT_EQ(0x000005b1u, ImmutableString("imageAtomicXor(01f00D00E").mangledNameHash());
     ASSERT_EQ(0x0000030cu, ImmutableString("imageAtomicXor(01g00D00E").mangledNameHash());
     ASSERT_EQ(0x00000251u, ImmutableString("imageAtomicXor(01h00D00E").mangledNameHash());
-    ASSERT_EQ(0x00000855u, ImmutableString("imageAtomicXor(01E20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000856u, ImmutableString("imageAtomicXor(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x00000142u, ImmutableString("imageAtomicXor(01F20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000757u, ImmutableString("imageAtomicXor(01G20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000758u, ImmutableString("imageAtomicXor(01G20D00E").mangledNameHash());
     ASSERT_EQ(0x000002a1u, ImmutableString("imageAtomicXor(01Z20D00E").mangledNameHash());
     ASSERT_EQ(0x00000085u, ImmutableString("imageAtomicXor(01a20D00E").mangledNameHash());
     ASSERT_EQ(0x000001c6u, ImmutableString("imageAtomicXor(01b20D00E").mangledNameHash());
@@ -1783,8 +1783,8 @@
     ASSERT_EQ(0x000001a5u, ImmutableString("imageAtomicXor(01L00D00E").mangledNameHash());
     ASSERT_EQ(0x0000055eu, ImmutableString("imageAtomicXor(01M00D00E").mangledNameHash());
     ASSERT_EQ(0x000000efu, ImmutableString("imageAtomicXor(01N10D00E").mangledNameHash());
-    ASSERT_EQ(0x000007c7u, ImmutableString("imageAtomicXor(01O10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000666u, ImmutableString("imageAtomicXor(01P10D00E").mangledNameHash());
+    ASSERT_EQ(0x000007c8u, ImmutableString("imageAtomicXor(01O10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000667u, ImmutableString("imageAtomicXor(01P10D00E").mangledNameHash());
     ASSERT_EQ(0x00000425u, ImmutableString("imageAtomicXor(01W10D00E").mangledNameHash());
     ASSERT_EQ(0x0000052fu, ImmutableString("imageAtomicXor(01X10D00E").mangledNameHash());
     ASSERT_EQ(0x00000068u, ImmutableString("imageAtomicXor(01Y10D00E").mangledNameHash());
@@ -1798,25 +1798,25 @@
     ASSERT_EQ(0x00000435u, ImmutableString("imageAtomicXor(00z10D00D").mangledNameHash());
     ASSERT_EQ(0x00000420u, ImmutableString("imageAtomicXor(01A10D00D").mangledNameHash());
     ASSERT_EQ(0x000000c1u, ImmutableString("imageAtomicXor(01B20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000816u, ImmutableString("imageAtomicXor(01C20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000639u, ImmutableString("imageAtomicXor(01D20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000817u, ImmutableString("imageAtomicXor(01C20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000063au, ImmutableString("imageAtomicXor(01D20D00D").mangledNameHash());
     ASSERT_EQ(0x000000abu, ImmutableString("imageAtomicXor(01H20D00D").mangledNameHash());
     ASSERT_EQ(0x00000204u, ImmutableString("imageAtomicXor(01I20D00D").mangledNameHash());
-    ASSERT_EQ(0x000007e9u, ImmutableString("imageAtomicXor(01J20D00D").mangledNameHash());
-    ASSERT_EQ(0x000005afu, ImmutableString("imageAtomicXor(01f00D00D").mangledNameHash());
+    ASSERT_EQ(0x000007eau, ImmutableString("imageAtomicXor(01J20D00D").mangledNameHash());
+    ASSERT_EQ(0x000005b0u, ImmutableString("imageAtomicXor(01f00D00D").mangledNameHash());
     ASSERT_EQ(0x00000315u, ImmutableString("imageAtomicXor(01g00D00D").mangledNameHash());
     ASSERT_EQ(0x00000250u, ImmutableString("imageAtomicXor(01h00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000856u, ImmutableString("imageAtomicXor(01E20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000788u, ImmutableString("imageAtomicXor(01F20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000758u, ImmutableString("imageAtomicXor(01G20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000857u, ImmutableString("imageAtomicXor(01E20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000789u, ImmutableString("imageAtomicXor(01F20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000759u, ImmutableString("imageAtomicXor(01G20D00D").mangledNameHash());
     ASSERT_EQ(0x000002a0u, ImmutableString("imageAtomicXor(01Z20D00D").mangledNameHash());
     ASSERT_EQ(0x00000086u, ImmutableString("imageAtomicXor(01a20D00D").mangledNameHash());
     ASSERT_EQ(0x00000238u, ImmutableString("imageAtomicXor(01b20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006bcu, ImmutableString("imageAtomicXor(01K00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006bdu, ImmutableString("imageAtomicXor(01K00D00D").mangledNameHash());
     ASSERT_EQ(0x00000326u, ImmutableString("imageAtomicXor(01L00D00D").mangledNameHash());
     ASSERT_EQ(0x0000055fu, ImmutableString("imageAtomicXor(01M00D00D").mangledNameHash());
     ASSERT_EQ(0x000000f0u, ImmutableString("imageAtomicXor(01N10D00D").mangledNameHash());
-    ASSERT_EQ(0x000007c6u, ImmutableString("imageAtomicXor(01O10D00D").mangledNameHash());
+    ASSERT_EQ(0x000007c7u, ImmutableString("imageAtomicXor(01O10D00D").mangledNameHash());
     ASSERT_EQ(0x0000028au, ImmutableString("imageAtomicXor(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x00000424u, ImmutableString("imageAtomicXor(01W10D00D").mangledNameHash());
     ASSERT_EQ(0x00000530u, ImmutableString("imageAtomicXor(01X10D00D").mangledNameHash());
@@ -1831,9 +1831,9 @@
     ASSERT_EQ(0x00000513u, ImmutableString("imageAtomicExchange(00z10D00E").mangledNameHash());
     ASSERT_EQ(0x00000236u, ImmutableString("imageAtomicExchange(01A10D00E").mangledNameHash());
     ASSERT_EQ(0x00000492u, ImmutableString("imageAtomicExchange(01B20D00E").mangledNameHash());
-    ASSERT_EQ(0x000007abu, ImmutableString("imageAtomicExchange(01C20D00E").mangledNameHash());
+    ASSERT_EQ(0x000007acu, ImmutableString("imageAtomicExchange(01C20D00E").mangledNameHash());
     ASSERT_EQ(0x0000037cu, ImmutableString("imageAtomicExchange(01D20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000065fu, ImmutableString("imageAtomicExchange(01H20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000660u, ImmutableString("imageAtomicExchange(01H20D00E").mangledNameHash());
     ASSERT_EQ(0x0000046du, ImmutableString("imageAtomicExchange(01I20D00E").mangledNameHash());
     ASSERT_EQ(0x000003ecu, ImmutableString("imageAtomicExchange(01J20D00E").mangledNameHash());
     ASSERT_EQ(0x00000131u, ImmutableString("imageAtomicExchange(01f00D00E").mangledNameHash());
@@ -1841,102 +1841,102 @@
     ASSERT_EQ(0x00000504u, ImmutableString("imageAtomicExchange(01h00D00E").mangledNameHash());
     ASSERT_EQ(0x0000035au, ImmutableString("imageAtomicExchange(01E20D00E").mangledNameHash());
     ASSERT_EQ(0x000001cau, ImmutableString("imageAtomicExchange(01F20D00E").mangledNameHash());
-    ASSERT_EQ(0x00000604u, ImmutableString("imageAtomicExchange(01G20D00E").mangledNameHash());
+    ASSERT_EQ(0x00000605u, ImmutableString("imageAtomicExchange(01G20D00E").mangledNameHash());
     ASSERT_EQ(0x0000012fu, ImmutableString("imageAtomicExchange(01Z20D00E").mangledNameHash());
-    ASSERT_EQ(0x0000076eu, ImmutableString("imageAtomicExchange(01a20D00E").mangledNameHash());
+    ASSERT_EQ(0x0000076fu, ImmutableString("imageAtomicExchange(01a20D00E").mangledNameHash());
     ASSERT_EQ(0x0000004bu, ImmutableString("imageAtomicExchange(01b20D00E").mangledNameHash());
     ASSERT_EQ(0x00000517u, ImmutableString("imageAtomicExchange(01K00D00E").mangledNameHash());
-    ASSERT_EQ(0x000005ceu, ImmutableString("imageAtomicExchange(01L00D00E").mangledNameHash());
+    ASSERT_EQ(0x000005cfu, ImmutableString("imageAtomicExchange(01L00D00E").mangledNameHash());
     ASSERT_EQ(0x000001ccu, ImmutableString("imageAtomicExchange(01M00D00E").mangledNameHash());
     ASSERT_EQ(0x0000023eu, ImmutableString("imageAtomicExchange(01N10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000637u, ImmutableString("imageAtomicExchange(01O10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000638u, ImmutableString("imageAtomicExchange(01O10D00E").mangledNameHash());
     ASSERT_EQ(0x00000465u, ImmutableString("imageAtomicExchange(01P10D00E").mangledNameHash());
     ASSERT_EQ(0x00000170u, ImmutableString("imageAtomicExchange(01W10D00E").mangledNameHash());
     ASSERT_EQ(0x000002b5u, ImmutableString("imageAtomicExchange(01X10D00E").mangledNameHash());
-    ASSERT_EQ(0x00000634u, ImmutableString("imageAtomicExchange(01Y10D00E").mangledNameHash());
+    ASSERT_EQ(0x00000635u, ImmutableString("imageAtomicExchange(01Y10D00E").mangledNameHash());
     ASSERT_EQ(0x0000041au, ImmutableString("imageAtomicExchange(01Q10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000444u, ImmutableString("imageAtomicExchange(01R10D00D00E").mangledNameHash());
     ASSERT_EQ(0x00000181u, ImmutableString("imageAtomicExchange(01S10D00D00E").mangledNameHash());
     ASSERT_EQ(0x000002c5u, ImmutableString("imageAtomicExchange(01T20D00D00E").mangledNameHash());
-    ASSERT_EQ(0x000005dcu, ImmutableString("imageAtomicExchange(01U20D00D00E").mangledNameHash());
+    ASSERT_EQ(0x000005ddu, ImmutableString("imageAtomicExchange(01U20D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000021bu, ImmutableString("imageAtomicExchange(01V20D00D00E").mangledNameHash());
     ASSERT_EQ(0x0000021fu, ImmutableString("imageAtomicExchange(00y10D00D").mangledNameHash());
     ASSERT_EQ(0x00000514u, ImmutableString("imageAtomicExchange(00z10D00D").mangledNameHash());
     ASSERT_EQ(0x00000237u, ImmutableString("imageAtomicExchange(01A10D00D").mangledNameHash());
     ASSERT_EQ(0x00000493u, ImmutableString("imageAtomicExchange(01B20D00D").mangledNameHash());
-    ASSERT_EQ(0x000007aau, ImmutableString("imageAtomicExchange(01C20D00D").mangledNameHash());
+    ASSERT_EQ(0x000007abu, ImmutableString("imageAtomicExchange(01C20D00D").mangledNameHash());
     ASSERT_EQ(0x000004a8u, ImmutableString("imageAtomicExchange(01D20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000660u, ImmutableString("imageAtomicExchange(01H20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000661u, ImmutableString("imageAtomicExchange(01H20D00D").mangledNameHash());
     ASSERT_EQ(0x0000046cu, ImmutableString("imageAtomicExchange(01I20D00D").mangledNameHash());
     ASSERT_EQ(0x000003edu, ImmutableString("imageAtomicExchange(01J20D00D").mangledNameHash());
     ASSERT_EQ(0x00000132u, ImmutableString("imageAtomicExchange(01f00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000068eu, ImmutableString("imageAtomicExchange(01g00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000068fu, ImmutableString("imageAtomicExchange(01g00D00D").mangledNameHash());
     ASSERT_EQ(0x00000505u, ImmutableString("imageAtomicExchange(01h00D00D").mangledNameHash());
     ASSERT_EQ(0x00000359u, ImmutableString("imageAtomicExchange(01E20D00D").mangledNameHash());
     ASSERT_EQ(0x000000b8u, ImmutableString("imageAtomicExchange(01F20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000603u, ImmutableString("imageAtomicExchange(01G20D00D").mangledNameHash());
+    ASSERT_EQ(0x00000604u, ImmutableString("imageAtomicExchange(01G20D00D").mangledNameHash());
     ASSERT_EQ(0x00000130u, ImmutableString("imageAtomicExchange(01Z20D00D").mangledNameHash());
-    ASSERT_EQ(0x0000076du, ImmutableString("imageAtomicExchange(01a20D00D").mangledNameHash());
+    ASSERT_EQ(0x0000076eu, ImmutableString("imageAtomicExchange(01a20D00D").mangledNameHash());
     ASSERT_EQ(0x0000004cu, ImmutableString("imageAtomicExchange(01b20D00D").mangledNameHash());
     ASSERT_EQ(0x000004b4u, ImmutableString("imageAtomicExchange(01K00D00D").mangledNameHash());
     ASSERT_EQ(0x000004d9u, ImmutableString("imageAtomicExchange(01L00D00D").mangledNameHash());
     ASSERT_EQ(0x000001cbu, ImmutableString("imageAtomicExchange(01M00D00D").mangledNameHash());
     ASSERT_EQ(0x00000069u, ImmutableString("imageAtomicExchange(01N10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000781u, ImmutableString("imageAtomicExchange(01O10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000782u, ImmutableString("imageAtomicExchange(01O10D00D").mangledNameHash());
     ASSERT_EQ(0x00000461u, ImmutableString("imageAtomicExchange(01P10D00D").mangledNameHash());
     ASSERT_EQ(0x00000171u, ImmutableString("imageAtomicExchange(01W10D00D").mangledNameHash());
     ASSERT_EQ(0x000002b4u, ImmutableString("imageAtomicExchange(01X10D00D").mangledNameHash());
-    ASSERT_EQ(0x00000635u, ImmutableString("imageAtomicExchange(01Y10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000636u, ImmutableString("imageAtomicExchange(01Y10D00D").mangledNameHash());
     ASSERT_EQ(0x00000419u, ImmutableString("imageAtomicExchange(01Q10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000445u, ImmutableString("imageAtomicExchange(01R10D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000027fu, ImmutableString("imageAtomicExchange(01S10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000002c4u, ImmutableString("imageAtomicExchange(01T20D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000005e0u, ImmutableString("imageAtomicExchange(01U20D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000005e1u, ImmutableString("imageAtomicExchange(01U20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000003eau, ImmutableString("imageAtomicExchange(01V20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000021eu, ImmutableString("imageAtomicExchange(00y10D00B").mangledNameHash());
     ASSERT_EQ(0x00000512u, ImmutableString("imageAtomicExchange(00z10D00B").mangledNameHash());
     ASSERT_EQ(0x00000234u, ImmutableString("imageAtomicExchange(01A10D00B").mangledNameHash());
     ASSERT_EQ(0x00000268u, ImmutableString("imageAtomicExchange(01B20D00B").mangledNameHash());
-    ASSERT_EQ(0x000007aeu, ImmutableString("imageAtomicExchange(01C20D00B").mangledNameHash());
+    ASSERT_EQ(0x000007afu, ImmutableString("imageAtomicExchange(01C20D00B").mangledNameHash());
     ASSERT_EQ(0x0000037eu, ImmutableString("imageAtomicExchange(01D20D00B").mangledNameHash());
-    ASSERT_EQ(0x0000065cu, ImmutableString("imageAtomicExchange(01H20D00B").mangledNameHash());
+    ASSERT_EQ(0x0000065du, ImmutableString("imageAtomicExchange(01H20D00B").mangledNameHash());
     ASSERT_EQ(0x0000046eu, ImmutableString("imageAtomicExchange(01I20D00B").mangledNameHash());
     ASSERT_EQ(0x000003ebu, ImmutableString("imageAtomicExchange(01J20D00B").mangledNameHash());
-    ASSERT_EQ(0x00000731u, ImmutableString("imageAtomicExchange(01f00D00B").mangledNameHash());
-    ASSERT_EQ(0x0000080eu, ImmutableString("imageAtomicExchange(01g00D00B").mangledNameHash());
+    ASSERT_EQ(0x00000732u, ImmutableString("imageAtomicExchange(01f00D00B").mangledNameHash());
+    ASSERT_EQ(0x0000080fu, ImmutableString("imageAtomicExchange(01g00D00B").mangledNameHash());
     ASSERT_EQ(0x00000507u, ImmutableString("imageAtomicExchange(01h00D00B").mangledNameHash());
     ASSERT_EQ(0x00000201u, ImmutableString("imageAtomicExchange(01E20D00B").mangledNameHash());
     ASSERT_EQ(0x000000bbu, ImmutableString("imageAtomicExchange(01F20D00B").mangledNameHash());
-    ASSERT_EQ(0x00000601u, ImmutableString("imageAtomicExchange(01G20D00B").mangledNameHash());
+    ASSERT_EQ(0x00000602u, ImmutableString("imageAtomicExchange(01G20D00B").mangledNameHash());
     ASSERT_EQ(0x0000012eu, ImmutableString("imageAtomicExchange(01Z20D00B").mangledNameHash());
-    ASSERT_EQ(0x0000076fu, ImmutableString("imageAtomicExchange(01a20D00B").mangledNameHash());
+    ASSERT_EQ(0x00000770u, ImmutableString("imageAtomicExchange(01a20D00B").mangledNameHash());
     ASSERT_EQ(0x0000015bu, ImmutableString("imageAtomicExchange(01b20D00B").mangledNameHash());
     ASSERT_EQ(0x00000518u, ImmutableString("imageAtomicExchange(01K00D00B").mangledNameHash());
     ASSERT_EQ(0x000003bbu, ImmutableString("imageAtomicExchange(01L00D00B").mangledNameHash());
     ASSERT_EQ(0x000001c9u, ImmutableString("imageAtomicExchange(01M00D00B").mangledNameHash());
     ASSERT_EQ(0x0000024au, ImmutableString("imageAtomicExchange(01N10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000636u, ImmutableString("imageAtomicExchange(01O10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000637u, ImmutableString("imageAtomicExchange(01O10D00B").mangledNameHash());
     ASSERT_EQ(0x00000295u, ImmutableString("imageAtomicExchange(01P10D00B").mangledNameHash());
     ASSERT_EQ(0x0000016fu, ImmutableString("imageAtomicExchange(01W10D00B").mangledNameHash());
-    ASSERT_EQ(0x0000075au, ImmutableString("imageAtomicExchange(01X10D00B").mangledNameHash());
-    ASSERT_EQ(0x00000632u, ImmutableString("imageAtomicExchange(01Y10D00B").mangledNameHash());
+    ASSERT_EQ(0x0000075bu, ImmutableString("imageAtomicExchange(01X10D00B").mangledNameHash());
+    ASSERT_EQ(0x00000633u, ImmutableString("imageAtomicExchange(01Y10D00B").mangledNameHash());
     ASSERT_EQ(0x0000041bu, ImmutableString("imageAtomicExchange(01Q10D00D00B").mangledNameHash());
     ASSERT_EQ(0x0000001fu, ImmutableString("imageAtomicExchange(01R10D00D00B").mangledNameHash());
     ASSERT_EQ(0x000001d8u, ImmutableString("imageAtomicExchange(01S10D00D00B").mangledNameHash());
     ASSERT_EQ(0x0000054du, ImmutableString("imageAtomicExchange(01T20D00D00B").mangledNameHash());
-    ASSERT_EQ(0x000005d9u, ImmutableString("imageAtomicExchange(01U20D00D00B").mangledNameHash());
+    ASSERT_EQ(0x000005dau, ImmutableString("imageAtomicExchange(01U20D00D00B").mangledNameHash());
     ASSERT_EQ(0x0000021cu, ImmutableString("imageAtomicExchange(01V20D00D00B").mangledNameHash());
     ASSERT_EQ(0x00000279u, ImmutableString("imageAtomicCompSwap(00y10D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000040du, ImmutableString("imageAtomicCompSwap(00z10D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000404u, ImmutableString("imageAtomicCompSwap(01A10D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000020au, ImmutableString("imageAtomicCompSwap(01B20D00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000782u, ImmutableString("imageAtomicCompSwap(01C20D00E00E").mangledNameHash());
-    ASSERT_EQ(0x000006f9u, ImmutableString("imageAtomicCompSwap(01D20D00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000065eu, ImmutableString("imageAtomicCompSwap(01H20D00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000783u, ImmutableString("imageAtomicCompSwap(01C20D00E00E").mangledNameHash());
+    ASSERT_EQ(0x000006fau, ImmutableString("imageAtomicCompSwap(01D20D00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000065fu, ImmutableString("imageAtomicCompSwap(01H20D00E00E").mangledNameHash());
     ASSERT_EQ(0x000000d8u, ImmutableString("imageAtomicCompSwap(01I20D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000005au, ImmutableString("imageAtomicCompSwap(01J20D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000049eu, ImmutableString("imageAtomicCompSwap(01f00D00E00E").mangledNameHash());
-    ASSERT_EQ(0x000007c4u, ImmutableString("imageAtomicCompSwap(01g00D00E00E").mangledNameHash());
+    ASSERT_EQ(0x000007c5u, ImmutableString("imageAtomicCompSwap(01g00D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000020eu, ImmutableString("imageAtomicCompSwap(01h00D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000134u, ImmutableString("imageAtomicCompSwap(01E20D00E00E").mangledNameHash());
     ASSERT_EQ(0x000001cdu, ImmutableString("imageAtomicCompSwap(01F20D00E00E").mangledNameHash());
@@ -1945,15 +1945,15 @@
     ASSERT_EQ(0x00000028u, ImmutableString("imageAtomicCompSwap(01a20D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000033fu, ImmutableString("imageAtomicCompSwap(01b20D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000045eu, ImmutableString("imageAtomicCompSwap(01K00D00E00E").mangledNameHash());
-    ASSERT_EQ(0x0000059cu, ImmutableString("imageAtomicCompSwap(01L00D00E00E").mangledNameHash());
+    ASSERT_EQ(0x0000059du, ImmutableString("imageAtomicCompSwap(01L00D00E00E").mangledNameHash());
     ASSERT_EQ(0x000002c0u, ImmutableString("imageAtomicCompSwap(01M00D00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000584u, ImmutableString("imageAtomicCompSwap(01N10D00E00E").mangledNameHash());
+    ASSERT_EQ(0x00000585u, ImmutableString("imageAtomicCompSwap(01N10D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000140u, ImmutableString("imageAtomicCompSwap(01O10D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000008cu, ImmutableString("imageAtomicCompSwap(01P10D00E00E").mangledNameHash());
     ASSERT_EQ(0x000001e5u, ImmutableString("imageAtomicCompSwap(01W10D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000112u, ImmutableString("imageAtomicCompSwap(01X10D00E00E").mangledNameHash());
     ASSERT_EQ(0x0000021du, ImmutableString("imageAtomicCompSwap(01Y10D00E00E").mangledNameHash());
-    ASSERT_EQ(0x000007c5u,
+    ASSERT_EQ(0x000007c6u,
               ImmutableString("imageAtomicCompSwap(01Q10D00D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000390u,
               ImmutableString("imageAtomicCompSwap(01R10D00D00E00E").mangledNameHash());
@@ -1961,12 +1961,12 @@
               ImmutableString("imageAtomicCompSwap(01S10D00D00E00E").mangledNameHash());
     ASSERT_EQ(0x00000298u,
               ImmutableString("imageAtomicCompSwap(01T20D00D00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000677u,
+    ASSERT_EQ(0x00000678u,
               ImmutableString("imageAtomicCompSwap(01U20D00D00E00E").mangledNameHash());
-    ASSERT_EQ(0x00000746u,
+    ASSERT_EQ(0x00000747u,
               ImmutableString("imageAtomicCompSwap(01V20D00D00E00E").mangledNameHash());
     ASSERT_EQ(0x000004b5u, ImmutableString("imageAtomicCompSwap(00y10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000771u, ImmutableString("imageAtomicCompSwap(00z10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000772u, ImmutableString("imageAtomicCompSwap(00z10D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000006fu, ImmutableString("imageAtomicCompSwap(01A10D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000342u, ImmutableString("imageAtomicCompSwap(01B20D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000422u, ImmutableString("imageAtomicCompSwap(01C20D00D00D").mangledNameHash());
@@ -1975,7 +1975,7 @@
     ASSERT_EQ(0x000002beu, ImmutableString("imageAtomicCompSwap(01I20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000003a9u, ImmutableString("imageAtomicCompSwap(01J20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000000cu, ImmutableString("imageAtomicCompSwap(01f00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x000006a9u, ImmutableString("imageAtomicCompSwap(01g00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x000006aau, ImmutableString("imageAtomicCompSwap(01g00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000303u, ImmutableString("imageAtomicCompSwap(01h00D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000000au, ImmutableString("imageAtomicCompSwap(01E20D00D00D").mangledNameHash());
     ASSERT_EQ(0x000002f1u, ImmutableString("imageAtomicCompSwap(01F20D00D00D").mangledNameHash());
@@ -1984,19 +1984,19 @@
     ASSERT_EQ(0x0000056au, ImmutableString("imageAtomicCompSwap(01a20D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000002fu, ImmutableString("imageAtomicCompSwap(01b20D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000126u, ImmutableString("imageAtomicCompSwap(01K00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000061cu, ImmutableString("imageAtomicCompSwap(01L00D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000061du, ImmutableString("imageAtomicCompSwap(01L00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000193u, ImmutableString("imageAtomicCompSwap(01M00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000211u, ImmutableString("imageAtomicCompSwap(01N10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000641u, ImmutableString("imageAtomicCompSwap(01O10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000068au, ImmutableString("imageAtomicCompSwap(01P10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000642u, ImmutableString("imageAtomicCompSwap(01O10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000068bu, ImmutableString("imageAtomicCompSwap(01P10D00D00D").mangledNameHash());
     ASSERT_EQ(0x0000030eu, ImmutableString("imageAtomicCompSwap(01W10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x00000842u, ImmutableString("imageAtomicCompSwap(01X10D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000066bu, ImmutableString("imageAtomicCompSwap(01Y10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x00000843u, ImmutableString("imageAtomicCompSwap(01X10D00D00D").mangledNameHash());
+    ASSERT_EQ(0x0000066cu, ImmutableString("imageAtomicCompSwap(01Y10D00D00D").mangledNameHash());
     ASSERT_EQ(0x000000a8u,
               ImmutableString("imageAtomicCompSwap(01Q10D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000029u,
               ImmutableString("imageAtomicCompSwap(01R10D00D00D00D").mangledNameHash());
-    ASSERT_EQ(0x0000062cu,
+    ASSERT_EQ(0x0000062du,
               ImmutableString("imageAtomicCompSwap(01S10D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000356u,
               ImmutableString("imageAtomicCompSwap(01T20D00D00D00D").mangledNameHash());
@@ -2006,47 +2006,47 @@
               ImmutableString("imageAtomicCompSwap(01V20D00D00D00D").mangledNameHash());
     ASSERT_EQ(0x00000370u, ImmutableString("imageLoad(00y10D").mangledNameHash());
     ASSERT_EQ(0x00000343u, ImmutableString("imageLoad(00z10D").mangledNameHash());
-    ASSERT_EQ(0x00000659u, ImmutableString("imageLoad(01A10D").mangledNameHash());
+    ASSERT_EQ(0x0000065au, ImmutableString("imageLoad(01A10D").mangledNameHash());
     ASSERT_EQ(0x000001b9u, ImmutableString("imageLoad(01B20D").mangledNameHash());
-    ASSERT_EQ(0x0000070au, ImmutableString("imageLoad(01C20D").mangledNameHash());
+    ASSERT_EQ(0x0000070bu, ImmutableString("imageLoad(01C20D").mangledNameHash());
     ASSERT_EQ(0x000001e9u, ImmutableString("imageLoad(01D20D").mangledNameHash());
-    ASSERT_EQ(0x000007fau, ImmutableString("imageLoad(01E20D").mangledNameHash());
+    ASSERT_EQ(0x000007fbu, ImmutableString("imageLoad(01E20D").mangledNameHash());
     ASSERT_EQ(0x0000002du, ImmutableString("imageLoad(01F20D").mangledNameHash());
-    ASSERT_EQ(0x00000779u, ImmutableString("imageLoad(01G20D").mangledNameHash());
+    ASSERT_EQ(0x0000077au, ImmutableString("imageLoad(01G20D").mangledNameHash());
     ASSERT_EQ(0x000002adu, ImmutableString("imageLoad(01H20D").mangledNameHash());
     ASSERT_EQ(0x00000008u, ImmutableString("imageLoad(01I20D").mangledNameHash());
     ASSERT_EQ(0x0000055au, ImmutableString("imageLoad(01J20D").mangledNameHash());
     ASSERT_EQ(0x0000051fu, ImmutableString("imageLoad(01f00D").mangledNameHash());
     ASSERT_EQ(0x00000007u, ImmutableString("imageLoad(01g00D").mangledNameHash());
     ASSERT_EQ(0x00000133u, ImmutableString("imageLoad(01h00D").mangledNameHash());
-    ASSERT_EQ(0x000007d9u, ImmutableString("imageLoad(01Z20D").mangledNameHash());
+    ASSERT_EQ(0x000007dau, ImmutableString("imageLoad(01Z20D").mangledNameHash());
     ASSERT_EQ(0x00000430u, ImmutableString("imageLoad(01a20D").mangledNameHash());
-    ASSERT_EQ(0x000006c9u, ImmutableString("imageLoad(01b20D").mangledNameHash());
+    ASSERT_EQ(0x000006cau, ImmutableString("imageLoad(01b20D").mangledNameHash());
     ASSERT_EQ(0x00000119u, ImmutableString("imageLoad(01K00D").mangledNameHash());
     ASSERT_EQ(0x00000462u, ImmutableString("imageLoad(01L00D").mangledNameHash());
-    ASSERT_EQ(0x0000059bu, ImmutableString("imageLoad(01M00D").mangledNameHash());
-    ASSERT_EQ(0x00000624u, ImmutableString("imageLoad(01N10D").mangledNameHash());
+    ASSERT_EQ(0x0000059cu, ImmutableString("imageLoad(01M00D").mangledNameHash());
+    ASSERT_EQ(0x00000625u, ImmutableString("imageLoad(01N10D").mangledNameHash());
     ASSERT_EQ(0x0000028eu, ImmutableString("imageLoad(01O10D").mangledNameHash());
-    ASSERT_EQ(0x000006b0u, ImmutableString("imageLoad(01P10D").mangledNameHash());
+    ASSERT_EQ(0x000006b1u, ImmutableString("imageLoad(01P10D").mangledNameHash());
     ASSERT_EQ(0x00000159u, ImmutableString("imageLoad(01W10D").mangledNameHash());
     ASSERT_EQ(0x0000016du, ImmutableString("imageLoad(01X10D").mangledNameHash());
-    ASSERT_EQ(0x00000605u, ImmutableString("imageLoad(01Y10D").mangledNameHash());
-    ASSERT_EQ(0x000005a7u, ImmutableString("imageLoad(01Q10D00D").mangledNameHash());
-    ASSERT_EQ(0x000006e7u, ImmutableString("imageLoad(01R10D00D").mangledNameHash());
+    ASSERT_EQ(0x00000606u, ImmutableString("imageLoad(01Y10D").mangledNameHash());
+    ASSERT_EQ(0x000005a8u, ImmutableString("imageLoad(01Q10D00D").mangledNameHash());
+    ASSERT_EQ(0x000006e8u, ImmutableString("imageLoad(01R10D00D").mangledNameHash());
     ASSERT_EQ(0x000002efu, ImmutableString("imageLoad(01S10D00D").mangledNameHash());
     ASSERT_EQ(0x00000310u, ImmutableString("imageLoad(01T20D00D").mangledNameHash());
-    ASSERT_EQ(0x000006ccu, ImmutableString("imageLoad(01U20D00D").mangledNameHash());
+    ASSERT_EQ(0x000006cdu, ImmutableString("imageLoad(01U20D00D").mangledNameHash());
     ASSERT_EQ(0x000000b6u, ImmutableString("imageLoad(01V20D00D").mangledNameHash());
-    ASSERT_EQ(0x00000694u, ImmutableString("imageStore(00y10D30B").mangledNameHash());
+    ASSERT_EQ(0x00000695u, ImmutableString("imageStore(00y10D30B").mangledNameHash());
     ASSERT_EQ(0x0000009bu, ImmutableString("imageStore(00z10D30D").mangledNameHash());
     ASSERT_EQ(0x000000aau, ImmutableString("imageStore(01A10D30E").mangledNameHash());
-    ASSERT_EQ(0x000006afu, ImmutableString("imageStore(01B20D30B").mangledNameHash());
+    ASSERT_EQ(0x000006b0u, ImmutableString("imageStore(01B20D30B").mangledNameHash());
     ASSERT_EQ(0x000001b1u, ImmutableString("imageStore(01C20D30D").mangledNameHash());
     ASSERT_EQ(0x0000044bu, ImmutableString("imageStore(01D20D30E").mangledNameHash());
     ASSERT_EQ(0x000003dbu, ImmutableString("imageStore(01E20D30B").mangledNameHash());
     ASSERT_EQ(0x000004fbu, ImmutableString("imageStore(01F20D30D").mangledNameHash());
     ASSERT_EQ(0x000004b9u, ImmutableString("imageStore(01G20D30E").mangledNameHash());
-    ASSERT_EQ(0x000005e2u, ImmutableString("imageStore(01H20D30B").mangledNameHash());
+    ASSERT_EQ(0x000005e3u, ImmutableString("imageStore(01H20D30B").mangledNameHash());
     ASSERT_EQ(0x00000573u, ImmutableString("imageStore(01I20D30D").mangledNameHash());
     ASSERT_EQ(0x000000a0u, ImmutableString("imageStore(01J20D30E").mangledNameHash());
     ASSERT_EQ(0x000000d7u, ImmutableString("imageStore(01f00D30B").mangledNameHash());
@@ -2054,75 +2054,75 @@
     ASSERT_EQ(0x0000032fu, ImmutableString("imageStore(01h00D30E").mangledNameHash());
     ASSERT_EQ(0x00000531u, ImmutableString("imageStore(01Z20D30B").mangledNameHash());
     ASSERT_EQ(0x000002acu, ImmutableString("imageStore(01a20D30D").mangledNameHash());
-    ASSERT_EQ(0x0000072au, ImmutableString("imageStore(01b20D30E").mangledNameHash());
+    ASSERT_EQ(0x0000072bu, ImmutableString("imageStore(01b20D30E").mangledNameHash());
     ASSERT_EQ(0x0000002bu, ImmutableString("imageStore(01K00D30B").mangledNameHash());
     ASSERT_EQ(0x000000bcu, ImmutableString("imageStore(01L00D30D").mangledNameHash());
     ASSERT_EQ(0x00000176u, ImmutableString("imageStore(01M00D30E").mangledNameHash());
     ASSERT_EQ(0x00000197u, ImmutableString("imageStore(01N10D30B").mangledNameHash());
-    ASSERT_EQ(0x000007a2u, ImmutableString("imageStore(01O10D30D").mangledNameHash());
+    ASSERT_EQ(0x000007a3u, ImmutableString("imageStore(01O10D30D").mangledNameHash());
     ASSERT_EQ(0x000004f2u, ImmutableString("imageStore(01P10D30E").mangledNameHash());
     ASSERT_EQ(0x000001f1u, ImmutableString("imageStore(01W10D30B").mangledNameHash());
     ASSERT_EQ(0x000004bfu, ImmutableString("imageStore(01X10D30D").mangledNameHash());
     ASSERT_EQ(0x00000178u, ImmutableString("imageStore(01Y10D30E").mangledNameHash());
-    ASSERT_EQ(0x00000663u, ImmutableString("imageStore(01Q10D00D30B").mangledNameHash());
-    ASSERT_EQ(0x000005fcu, ImmutableString("imageStore(01R10D00D30D").mangledNameHash());
+    ASSERT_EQ(0x00000664u, ImmutableString("imageStore(01Q10D00D30B").mangledNameHash());
+    ASSERT_EQ(0x000005fdu, ImmutableString("imageStore(01R10D00D30D").mangledNameHash());
     ASSERT_EQ(0x00000417u, ImmutableString("imageStore(01S10D00D30E").mangledNameHash());
-    ASSERT_EQ(0x000007ebu, ImmutableString("imageStore(01T20D00D30B").mangledNameHash());
+    ASSERT_EQ(0x000007ecu, ImmutableString("imageStore(01T20D00D30B").mangledNameHash());
     ASSERT_EQ(0x00000120u, ImmutableString("imageStore(01U20D00D30D").mangledNameHash());
     ASSERT_EQ(0x00000297u, ImmutableString("imageStore(01V20D00D30E").mangledNameHash());
-    ASSERT_EQ(0x0000059au, ImmutableString("noise1(00B").mangledNameHash());
-    ASSERT_EQ(0x0000064fu, ImmutableString("noise1(10B").mangledNameHash());
-    ASSERT_EQ(0x000006e1u, ImmutableString("noise1(20B").mangledNameHash());
+    ASSERT_EQ(0x0000059bu, ImmutableString("noise1(00B").mangledNameHash());
+    ASSERT_EQ(0x00000650u, ImmutableString("noise1(10B").mangledNameHash());
+    ASSERT_EQ(0x000006e2u, ImmutableString("noise1(20B").mangledNameHash());
     ASSERT_EQ(0x00000320u, ImmutableString("noise1(30B").mangledNameHash());
     ASSERT_EQ(0x000002c6u, ImmutableString("noise2(00B").mangledNameHash());
     ASSERT_EQ(0x000000ccu, ImmutableString("noise2(10B").mangledNameHash());
     ASSERT_EQ(0x00000091u, ImmutableString("noise2(20B").mangledNameHash());
-    ASSERT_EQ(0x000006b9u, ImmutableString("noise2(30B").mangledNameHash());
+    ASSERT_EQ(0x000006bau, ImmutableString("noise2(30B").mangledNameHash());
     ASSERT_EQ(0x000002a5u, ImmutableString("noise3(00B").mangledNameHash());
     ASSERT_EQ(0x00000335u, ImmutableString("noise3(10B").mangledNameHash());
-    ASSERT_EQ(0x000006d8u, ImmutableString("noise3(20B").mangledNameHash());
+    ASSERT_EQ(0x000006d9u, ImmutableString("noise3(20B").mangledNameHash());
     ASSERT_EQ(0x000001f6u, ImmutableString("noise3(30B").mangledNameHash());
     ASSERT_EQ(0x0000032au, ImmutableString("noise4(00B").mangledNameHash());
     ASSERT_EQ(0x0000029du, ImmutableString("noise4(10B").mangledNameHash());
     ASSERT_EQ(0x00000478u, ImmutableString("noise4(20B").mangledNameHash());
     ASSERT_EQ(0x000003d8u, ImmutableString("noise4(30B").mangledNameHash());
     ASSERT_EQ(0x000001dcu, ImmutableString("memoryBarrier(").mangledNameHash());
-    ASSERT_EQ(0x0000069fu, ImmutableString("memoryBarrierAtomicCounter(").mangledNameHash());
+    ASSERT_EQ(0x000006a0u, ImmutableString("memoryBarrierAtomicCounter(").mangledNameHash());
     ASSERT_EQ(0x000000f9u, ImmutableString("memoryBarrierBuffer(").mangledNameHash());
-    ASSERT_EQ(0x0000082du, ImmutableString("memoryBarrierImage(").mangledNameHash());
-    ASSERT_EQ(0x000006ffu, ImmutableString("barrier(").mangledNameHash());
-    ASSERT_EQ(0x0000081bu, ImmutableString("memoryBarrierShared(").mangledNameHash());
+    ASSERT_EQ(0x0000082eu, ImmutableString("memoryBarrierImage(").mangledNameHash());
+    ASSERT_EQ(0x00000700u, ImmutableString("barrier(").mangledNameHash());
+    ASSERT_EQ(0x0000081cu, ImmutableString("memoryBarrierShared(").mangledNameHash());
     ASSERT_EQ(0x00000048u, ImmutableString("groupMemoryBarrier(").mangledNameHash());
     ASSERT_EQ(0x00000216u, ImmutableString("EmitVertex(").mangledNameHash());
     ASSERT_EQ(0x0000038cu, ImmutableString("EndPrimitive(").mangledNameHash());
     ASSERT_EQ(0x000003a8u, ImmutableString("EmitStreamVertex(00D").mangledNameHash());
     ASSERT_EQ(0x00000287u, ImmutableString("EndStreamPrimitive(00D").mangledNameHash());
-    ASSERT_EQ(0x000006ceu, ImmutableString("subpassLoad(01i").mangledNameHash());
-    ASSERT_EQ(0x000006eau, ImmutableString("subpassLoad(01j").mangledNameHash());
-    ASSERT_EQ(0x000006cfu, ImmutableString("subpassLoad(01k").mangledNameHash());
+    ASSERT_EQ(0x000006cfu, ImmutableString("subpassLoad(01i").mangledNameHash());
+    ASSERT_EQ(0x000006ebu, ImmutableString("subpassLoad(01j").mangledNameHash());
+    ASSERT_EQ(0x000006d0u, ImmutableString("subpassLoad(01k").mangledNameHash());
     ASSERT_EQ(0x00000196u, ImmutableString("subpassLoad(01l00D").mangledNameHash());
     ASSERT_EQ(0x00000299u, ImmutableString("subpassLoad(01m00D").mangledNameHash());
     ASSERT_EQ(0x00000564u, ImmutableString("subpassLoad(01n00D").mangledNameHash());
-    ASSERT_EQ(0x000006f7u, ImmutableString("anyInvocation(00F").mangledNameHash());
-    ASSERT_EQ(0x000005a4u, ImmutableString("allInvocations(00F").mangledNameHash());
+    ASSERT_EQ(0x000006f8u, ImmutableString("anyInvocation(00F").mangledNameHash());
+    ASSERT_EQ(0x000005a5u, ImmutableString("allInvocations(00F").mangledNameHash());
     ASSERT_EQ(0x000004b8u, ImmutableString("allInvocationsEqual(00F").mangledNameHash());
-    ASSERT_EQ(0x0000064cu, ImmutableString("gl_DepthRangeParameters").mangledNameHash());
+    ASSERT_EQ(0x0000064du, ImmutableString("gl_DepthRangeParameters").mangledNameHash());
     ASSERT_EQ(0x00000124u, ImmutableString("gl_DepthRange").mangledNameHash());
-    ASSERT_EQ(0x00000809u, ImmutableString("gl_MaxVertexAttribs").mangledNameHash());
+    ASSERT_EQ(0x0000080au, ImmutableString("gl_MaxVertexAttribs").mangledNameHash());
     ASSERT_EQ(0x000002ccu, ImmutableString("gl_MaxVertexUniformVectors").mangledNameHash());
     ASSERT_EQ(0x000001adu, ImmutableString("gl_MaxVertexTextureImageUnits").mangledNameHash());
     ASSERT_EQ(0x00000519u, ImmutableString("gl_MaxCombinedTextureImageUnits").mangledNameHash());
     ASSERT_EQ(0x000004e6u, ImmutableString("gl_MaxTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x000005edu, ImmutableString("gl_MaxFragmentUniformVectors").mangledNameHash());
-    ASSERT_EQ(0x00000621u, ImmutableString("gl_MaxVaryingVectors").mangledNameHash());
+    ASSERT_EQ(0x000005eeu, ImmutableString("gl_MaxFragmentUniformVectors").mangledNameHash());
+    ASSERT_EQ(0x00000622u, ImmutableString("gl_MaxVaryingVectors").mangledNameHash());
     ASSERT_EQ(0x000004cau, ImmutableString("gl_MaxDrawBuffers").mangledNameHash());
     ASSERT_EQ(0x0000017au, ImmutableString("gl_MaxDualSourceDrawBuffersEXT").mangledNameHash());
-    ASSERT_EQ(0x00000800u, ImmutableString("gl_MaxVertexOutputVectors").mangledNameHash());
+    ASSERT_EQ(0x00000801u, ImmutableString("gl_MaxVertexOutputVectors").mangledNameHash());
     ASSERT_EQ(0x0000005du, ImmutableString("gl_MaxFragmentInputVectors").mangledNameHash());
     ASSERT_EQ(0x00000528u, ImmutableString("gl_MinProgramTexelOffset").mangledNameHash());
-    ASSERT_EQ(0x00000791u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
+    ASSERT_EQ(0x00000792u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
     ASSERT_EQ(0x00000488u, ImmutableString("gl_MaxImageUnits").mangledNameHash());
-    ASSERT_EQ(0x000007e2u, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
+    ASSERT_EQ(0x000007e3u, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
     ASSERT_EQ(0x00000149u, ImmutableString("gl_MaxFragmentImageUniforms").mangledNameHash());
     ASSERT_EQ(0x00000232u, ImmutableString("gl_MaxComputeImageUniforms").mangledNameHash());
     ASSERT_EQ(0x00000543u, ImmutableString("gl_MaxCombinedImageUniforms").mangledNameHash());
@@ -2130,18 +2130,18 @@
               ImmutableString("gl_MaxCombinedShaderOutputResources").mangledNameHash());
     ASSERT_EQ(0x00000276u, ImmutableString("gl_MaxComputeWorkGroupCount").mangledNameHash());
     ASSERT_EQ(0x000004acu, ImmutableString("gl_MaxComputeWorkGroupSize").mangledNameHash());
-    ASSERT_EQ(0x00000698u, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
+    ASSERT_EQ(0x00000699u, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
     ASSERT_EQ(0x000000a3u, ImmutableString("gl_MaxComputeTextureImageUnits").mangledNameHash());
-    ASSERT_EQ(0x00000649u, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x0000064au, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x000001b7u, ImmutableString("gl_MaxComputeAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x00000169u, ImmutableString("gl_MaxVertexAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000186u, ImmutableString("gl_MaxFragmentAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x00000616u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x00000617u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
     ASSERT_EQ(0x00000022u, ImmutableString("gl_MaxAtomicCounterBindings").mangledNameHash());
     ASSERT_EQ(0x0000026au, ImmutableString("gl_MaxVertexAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x00000328u, ImmutableString("gl_MaxFragmentAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x000007e4u, ImmutableString("gl_MaxCombinedAtomicCounterBuffers").mangledNameHash());
-    ASSERT_EQ(0x000007d3u, ImmutableString("gl_MaxAtomicCounterBufferSize").mangledNameHash());
+    ASSERT_EQ(0x000007e5u, ImmutableString("gl_MaxCombinedAtomicCounterBuffers").mangledNameHash());
+    ASSERT_EQ(0x000007d4u, ImmutableString("gl_MaxAtomicCounterBufferSize").mangledNameHash());
     ASSERT_EQ(0x0000046fu, ImmutableString("gl_MaxGeometryInputComponents").mangledNameHash());
     ASSERT_EQ(0x0000031fu, ImmutableString("gl_MaxGeometryOutputComponents").mangledNameHash());
     ASSERT_EQ(0x00000106u, ImmutableString("gl_MaxGeometryImageUniforms").mangledNameHash());
@@ -2150,38 +2150,39 @@
     ASSERT_EQ(0x0000052au,
               ImmutableString("gl_MaxGeometryTotalOutputComponents").mangledNameHash());
     ASSERT_EQ(0x000002d1u, ImmutableString("gl_MaxGeometryUniformComponents").mangledNameHash());
-    ASSERT_EQ(0x0000076bu, ImmutableString("gl_MaxGeometryAtomicCounters").mangledNameHash());
-    ASSERT_EQ(0x0000072fu, ImmutableString("gl_MaxGeometryAtomicCounterBuffers").mangledNameHash());
+    ASSERT_EQ(0x0000076cu, ImmutableString("gl_MaxGeometryAtomicCounters").mangledNameHash());
+    ASSERT_EQ(0x00000730u, ImmutableString("gl_MaxGeometryAtomicCounterBuffers").mangledNameHash());
     ASSERT_EQ(0x00000494u, ImmutableString("gl_FragCoord").mangledNameHash());
     ASSERT_EQ(0x000001b0u, ImmutableString("gl_FrontFacing").mangledNameHash());
     ASSERT_EQ(0x000004f5u, ImmutableString("gl_PointCoord").mangledNameHash());
     ASSERT_EQ(0x0000047eu, ImmutableString("gl_FragColor").mangledNameHash());
-    ASSERT_EQ(0x000007fcu, ImmutableString("gl_FragData").mangledNameHash());
+    ASSERT_EQ(0x000007fdu, ImmutableString("gl_FragData").mangledNameHash());
     ASSERT_EQ(0x000003d3u, ImmutableString("gl_FragDepth").mangledNameHash());
+    ASSERT_EQ(0x00000577u, ImmutableString("gl_HelperInvocation").mangledNameHash());
     ASSERT_EQ(0x000001c1u, ImmutableString("gl_SecondaryFragColorEXT").mangledNameHash());
-    ASSERT_EQ(0x0000074eu, ImmutableString("gl_SecondaryFragDataEXT").mangledNameHash());
+    ASSERT_EQ(0x0000074fu, ImmutableString("gl_SecondaryFragDataEXT").mangledNameHash());
     ASSERT_EQ(0x000002f5u, ImmutableString("gl_FragDepthEXT").mangledNameHash());
-    ASSERT_EQ(0x00000719u, ImmutableString("gl_LastFragData").mangledNameHash());
-    ASSERT_EQ(0x00000673u, ImmutableString("gl_LastFragColor").mangledNameHash());
+    ASSERT_EQ(0x0000071au, ImmutableString("gl_LastFragData").mangledNameHash());
+    ASSERT_EQ(0x00000674u, ImmutableString("gl_LastFragColor").mangledNameHash());
     ASSERT_EQ(0x000001bdu, ImmutableString("gl_LastFragColorARM").mangledNameHash());
-    ASSERT_EQ(0x00000669u, ImmutableString("gl_PrimitiveID").mangledNameHash());
-    ASSERT_EQ(0x0000066eu, ImmutableString("gl_Layer").mangledNameHash());
+    ASSERT_EQ(0x0000066au, ImmutableString("gl_PrimitiveID").mangledNameHash());
+    ASSERT_EQ(0x0000066fu, ImmutableString("gl_Layer").mangledNameHash());
     ASSERT_EQ(0x000003e6u, ImmutableString("gl_Position").mangledNameHash());
     ASSERT_EQ(0x00000209u, ImmutableString("gl_PointSize").mangledNameHash());
     ASSERT_EQ(0x00000114u, ImmutableString("gl_InstanceID").mangledNameHash());
     ASSERT_EQ(0x00000548u, ImmutableString("gl_VertexID").mangledNameHash());
     ASSERT_EQ(0x0000043eu, ImmutableString("gl_DrawID").mangledNameHash());
-    ASSERT_EQ(0x000007d6u, ImmutableString("gl_BaseVertex").mangledNameHash());
+    ASSERT_EQ(0x000007d7u, ImmutableString("gl_BaseVertex").mangledNameHash());
     ASSERT_EQ(0x000001c4u, ImmutableString("gl_BaseInstance").mangledNameHash());
     ASSERT_EQ(0x00000469u, ImmutableString("angle_BaseVertex").mangledNameHash());
     ASSERT_EQ(0x000003e3u, ImmutableString("angle_BaseInstance").mangledNameHash());
-    ASSERT_EQ(0x000005d2u, ImmutableString("gl_NumWorkGroups").mangledNameHash());
+    ASSERT_EQ(0x000005d3u, ImmutableString("gl_NumWorkGroups").mangledNameHash());
     ASSERT_EQ(0x0000034bu, ImmutableString("gl_WorkGroupSize").mangledNameHash());
-    ASSERT_EQ(0x00000764u, ImmutableString("gl_WorkGroupID").mangledNameHash());
-    ASSERT_EQ(0x0000072cu, ImmutableString("gl_LocalInvocationID").mangledNameHash());
+    ASSERT_EQ(0x00000765u, ImmutableString("gl_WorkGroupID").mangledNameHash());
+    ASSERT_EQ(0x0000072du, ImmutableString("gl_LocalInvocationID").mangledNameHash());
     ASSERT_EQ(0x00000547u, ImmutableString("gl_GlobalInvocationID").mangledNameHash());
-    ASSERT_EQ(0x000007dfu, ImmutableString("gl_LocalInvocationIndex").mangledNameHash());
-    ASSERT_EQ(0x000007bdu, ImmutableString("gl_PrimitiveIDIn").mangledNameHash());
+    ASSERT_EQ(0x000007e0u, ImmutableString("gl_LocalInvocationIndex").mangledNameHash());
+    ASSERT_EQ(0x000007beu, ImmutableString("gl_PrimitiveIDIn").mangledNameHash());
     ASSERT_EQ(0x000000c7u, ImmutableString("gl_InvocationID").mangledNameHash());
     ASSERT_EQ(0x00000348u, ImmutableString("gl_PerVertex").mangledNameHash());
     ASSERT_EQ(0x00000329u, ImmutableString("gl_in").mangledNameHash());
diff --git a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/QualificationOrder_test.cpp b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/QualificationOrder_test.cpp
index 98f8a2d..eccd0a6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/QualificationOrder_test.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/QualificationOrder_test.cpp
@@ -429,7 +429,7 @@
         "}\n"
         "void main()\n"
         "{\n"
-        "    gl_FragColor = vec4(foo0(value));\n"
+        "   gl_FragColor = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
@@ -449,7 +449,7 @@
         "}\n"
         "void main()\n"
         "{\n"
-        "    gl_FragColor = vec4(foo0(value));\n"
+        "   gl_FragColor = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
@@ -469,7 +469,7 @@
         "}\n"
         "void main()\n"
         "{\n"
-        "    gl_FragColor = vec4(foo0(value));\n"
+        "   gl_FragColor = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
@@ -491,7 +491,7 @@
         "out vec4 colorOUT;\n"
         "void main()\n"
         "{\n"
-        "    colorOUT = vec4(foo0(value));\n"
+        "   colorOUT = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
@@ -513,7 +513,7 @@
         "out vec4 colorOUT;\n"
         "void main()\n"
         "{\n"
-        "    colorOUT = vec4(foo0(value));\n"
+        "   colorOUT = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
@@ -535,7 +535,7 @@
         "out vec4 colorOUT;\n"
         "void main()\n"
         "{\n"
-        "    colorOUT = vec4(foo0(value));\n"
+        "   colorOUT = vec4(foo0(value));\n"
         "}\n";
 
     if (compile(shaderString))
diff --git a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ShaderValidation_test.cpp b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ShaderValidation_test.cpp
index 5b72ef3..55879a2 100644
--- a/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ShaderValidation_test.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/compiler_tests/ShaderValidation_test.cpp
@@ -1305,6 +1305,26 @@
     }
 }
 
+// Test that indexing a sampler array with a non-constant expression is forbidden, even if ANGLE is
+// able to constant fold the index expression. ESSL 3.00 section 4.1.7.1.
+TEST_F(FragmentShaderValidationTest, DynamicallyIndexedSampler)
+{
+    const std::string &shaderString =
+        "#version 300 es\n"
+        "precision mediump float;\n"
+        "uniform int a;\n"
+        "uniform sampler2D s[2];\n"
+        "out vec4 my_FragColor;\n"
+        "void main()\n"
+        "{\n"
+        "    my_FragColor = texture(s[true ? 0 : a], vec2(0));\n"
+        "}\n";
+    if (compile(shaderString))
+    {
+        FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
+    }
+}
+
 // Test that a shader that uses a struct definition in place of a struct constructor does not
 // compile. See GLSL ES 1.00 section 5.4.3.
 TEST_F(FragmentShaderValidationTest, StructConstructorWithStructDefinition)
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/BUILD.gn b/Source/ThirdParty/ANGLE/src/tests/deqp_support/BUILD.gn
new file mode 100644
index 0000000..22a4e28
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/BUILD.gn
@@ -0,0 +1,382 @@
+# GENERATED FILE - DO NOT EDIT.
+# Generated by: gen_vk_gl_cts_build.py
+#
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+deqp_path = "../../../third_party/VK-GL-CTS/src"
+
+copy("vk_gl_cts_data_data_gles2_data") {
+  sources = [
+    "$deqp_path/data/gles2/data/brick.png",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles2/data/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles2_data_etc1") {
+  sources = [
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_113x89.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/photo_helsinki_mip_7.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_neg_x.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_neg_y.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_neg_z.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_pos_x.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_pos_y.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_61x61_pos_z.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_x_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_y_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_neg_z_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_x_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_y_mip_6.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_0.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_1.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_2.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_3.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_4.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_5.pkm",
+    "$deqp_path/data/gles2/data/etc1/skybox_pos_z_mip_6.pkm",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles2_shaders") {
+  sources = [
+    "$deqp_path/data/gles2/shaders/conditionals.test",
+    "$deqp_path/data/gles2/shaders/constant_expressions.test",
+    "$deqp_path/data/gles2/shaders/constants.test",
+    "$deqp_path/data/gles2/shaders/conversions.test",
+    "$deqp_path/data/gles2/shaders/declarations.test",
+    "$deqp_path/data/gles2/shaders/fragdata.test",
+    "$deqp_path/data/gles2/shaders/functions.test",
+    "$deqp_path/data/gles2/shaders/invalid_constant_expressions.test",
+    "$deqp_path/data/gles2/shaders/invalid_implicit_conversions.test",
+    "$deqp_path/data/gles2/shaders/invalid_texture_functions.test",
+    "$deqp_path/data/gles2/shaders/keywords.test",
+    "$deqp_path/data/gles2/shaders/linkage.test",
+    "$deqp_path/data/gles2/shaders/loops.test",
+    "$deqp_path/data/gles2/shaders/misc.test",
+    "$deqp_path/data/gles2/shaders/preprocessor.test",
+    "$deqp_path/data/gles2/shaders/qualification_order.test",
+    "$deqp_path/data/gles2/shaders/reserved_operators.test",
+    "$deqp_path/data/gles2/shaders/scoping.test",
+    "$deqp_path/data/gles2/shaders/swizzles.test",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles3_data") {
+  sources = [
+    "$deqp_path/data/gles3/data/brick.png",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/data/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles3_data_etc1") {
+  sources = [
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_113x89.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/photo_helsinki_mip_7.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_neg_x.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_neg_y.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_neg_z.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_pos_x.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_pos_y.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_61x61_pos_z.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_x_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_y_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_neg_z_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_x_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_y_mip_6.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_0.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_1.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_2.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_3.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_4.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_5.pkm",
+    "$deqp_path/data/gles3/data/etc1/skybox_pos_z_mip_6.pkm",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles3_shaders") {
+  sources = [
+    "$deqp_path/data/gles3/shaders/arrays.test",
+    "$deqp_path/data/gles3/shaders/conditionals.test",
+    "$deqp_path/data/gles3/shaders/constant_expressions.test",
+    "$deqp_path/data/gles3/shaders/constants.test",
+    "$deqp_path/data/gles3/shaders/conversions.test",
+    "$deqp_path/data/gles3/shaders/declarations.test",
+    "$deqp_path/data/gles3/shaders/fragdata.test",
+    "$deqp_path/data/gles3/shaders/functions.test",
+    "$deqp_path/data/gles3/shaders/indexing.test",
+    "$deqp_path/data/gles3/shaders/invalid_implicit_conversions.test",
+    "$deqp_path/data/gles3/shaders/invalid_texture_functions.test",
+    "$deqp_path/data/gles3/shaders/keywords.test",
+    "$deqp_path/data/gles3/shaders/large_constant_arrays.test",
+    "$deqp_path/data/gles3/shaders/linkage.test",
+    "$deqp_path/data/gles3/shaders/loops.test",
+    "$deqp_path/data/gles3/shaders/negative.test",
+    "$deqp_path/data/gles3/shaders/preprocessor.test",
+    "$deqp_path/data/gles3/shaders/qualification_order.test",
+    "$deqp_path/data/gles3/shaders/scoping.test",
+    "$deqp_path/data/gles3/shaders/switch.test",
+    "$deqp_path/data/gles3/shaders/swizzle_math_operations.test",
+    "$deqp_path/data/gles3/shaders/swizzles.test",
+    "$deqp_path/data/gles3/shaders/uniform_block.test",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles31_data_tessellation") {
+  sources = [
+    "$deqp_path/data/gles31/data/tessellation/barrier_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/gl_position_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_equal_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_equal_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_equal_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_0.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_1.png",
+    "$deqp_path/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_2.png",
+    "$deqp_path/data/gles31/data/tessellation/patch_vertices_10_in_10_out_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/patch_vertices_10_in_5_out_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/patch_vertices_5_in_10_out_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/primitive_id_tcs_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/primitive_id_tes_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/user_defined_io_isolines_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/user_defined_io_quads_ref.png",
+    "$deqp_path/data/gles31/data/tessellation/user_defined_io_triangles_ref.png",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles31_shaders_es31") {
+  sources = [
+    "$deqp_path/data/gles31/shaders/es31/android_extension_pack.test",
+    "$deqp_path/data/gles31/shaders/es31/arrays.test",
+    "$deqp_path/data/gles31/shaders/es31/arrays_of_arrays.test",
+    "$deqp_path/data/gles31/shaders/es31/declarations.test",
+    "$deqp_path/data/gles31/shaders/es31/functions.test",
+    "$deqp_path/data/gles31/shaders/es31/implicit_conversions.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_geometry.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_geometry_uniform_types.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_geometry_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_io_block.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_shader_storage_block.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_tessellation.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_tessellation_geometry.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_tessellation_geometry_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_tessellation_uniform_types.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_tessellation_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es31/linkage_uniform.test",
+    "$deqp_path/data/gles31/shaders/es31/separate_shader_validation.test",
+    "$deqp_path/data/gles31/shaders/es31/tessellation_negative_user_defined_io.test",
+    "$deqp_path/data/gles31/shaders/es31/uniform_block.test",
+    "$deqp_path/data/gles31/shaders/es31/uniform_location.test",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_data_gles31_shaders_es32") {
+  sources = [
+    "$deqp_path/data/gles31/shaders/es32/android_extension_pack.test",
+    "$deqp_path/data/gles31/shaders/es32/arrays.test",
+    "$deqp_path/data/gles31/shaders/es32/arrays_of_arrays.test",
+    "$deqp_path/data/gles31/shaders/es32/functions.test",
+    "$deqp_path/data/gles31/shaders/es32/implicit_conversions.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_geometry.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_geometry_uniform_types.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_geometry_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_io_block.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_shader_storage_block.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_tessellation.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_tessellation_geometry.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_tessellation_geometry_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_tessellation_uniform_types.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_tessellation_varying_types.test",
+    "$deqp_path/data/gles31/shaders/es32/linkage_uniform.test",
+    "$deqp_path/data/gles31/shaders/es32/separate_shader_validation.test",
+    "$deqp_path/data/gles31/shaders/es32/tessellation_negative_user_defined_io.test",
+    "$deqp_path/data/gles31/shaders/es32/uniform_block.test",
+    "$deqp_path/data/gles31/shaders/es32/uniform_location.test",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz") {
+  sources = [
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/vertexShader.glsl",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/{{source_file_part}}",
+  ]
+}
+
+copy(
+    "vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz_bubblesort_flag") {
+  sources = [
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/bubblesort_flag/recipient.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/bubblesort_flag/variant_1.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/bubblesort_flag/variant_2.frag",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz_synthetic") {
+  sources = [
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/synthetic/recipient.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/synthetic/variant_1.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/synthetic/variant_2.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/synthetic/variant_3.frag",
+    "$deqp_path/external/graphicsfuzz/data/gles3/graphicsfuzz/synthetic/variant_4.frag",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/{{source_file_part}}",
+  ]
+}
+
+copy("vk_gl_cts_data_external_openglcts_data_gles3") {
+  sources = [
+    "$deqp_path/external/openglcts/data/gles3/arrays.test",
+    "$deqp_path/external/openglcts/data/gles3/declarations.test",
+    "$deqp_path/external/openglcts/data/gles3/literal_parsing.test",
+    "$deqp_path/external/openglcts/data/gles3/name_hiding.test",
+    "$deqp_path/external/openglcts/data/gles3/preprocessor.test",
+    "$deqp_path/external/openglcts/data/gles3/switch.test",
+  ]
+  outputs = [
+    "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/{{source_file_part}}",
+  ]
+}
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_gtest.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_gtest.cpp
index e6e65ef..05db50b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_gtest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_gtest.cpp
@@ -58,9 +58,9 @@
 }
 
 const char *gCaseListSearchPaths[] = {
-    "/../../sdcard/chromium_tests_root/third_party/angle/third_party/deqp/src",
-    "/../../third_party/deqp/src",
-    "/../../third_party/angle/third_party/deqp/src",
+    "/../../sdcard/chromium_tests_root/third_party/angle/third_party/VK-GL-CTS/src",
+    "/../../third_party/VK-GL-CTS/src",
+    "/../../third_party/angle/third_party/VK-GL-CTS/src",
 };
 
 const char *gTestExpectationsSearchPaths[] = {
@@ -268,6 +268,19 @@
 
     GPUTestConfig testConfig = GPUTestConfig(api);
 
+#if !defined(ANGLE_PLATFORM_ANDROID)
+    // Note: These prints mess up parsing of test list when running on Android.
+    std::cout << "Using test config with:" << std::endl;
+    for (uint32_t condition : testConfig.getConditions())
+    {
+        const char *name = GetConditionName(condition);
+        if (name != nullptr)
+        {
+            std::cout << "  " << name << std::endl;
+        }
+    }
+#endif
+
     if (!mTestExpectationsParser.loadTestExpectationsFromFile(testConfig,
                                                               testExpectationsPath.value()))
     {
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_libtester_main.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_libtester_main.cpp
index ea9f09b..6d7a8ed 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_libtester_main.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/angle_deqp_libtester_main.cpp
@@ -38,10 +38,10 @@
 const char *kDataPaths[] = {
     ".",
     "../../sdcard/chromium_tests_root",
-    "../../sdcard/chromium_tests_root/third_party/angle/third_party/deqp/src",
-    "../../third_party/angle/third_party/deqp/src",
-    "../../third_party/deqp/src",
-    "third_party/deqp/src",
+    "../../sdcard/chromium_tests_root/third_party/angle/third_party/VK-GL-CTS/src",
+    "../../third_party/angle/third_party/VK-GL-CTS/src",
+    "../../third_party/VK-GL-CTS/src",
+    "third_party/VK-GL-CTS/src",
 };
 
 bool FindDataDir(std::string *dataDirOut)
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp.gni b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp.gni
similarity index 98%
rename from Source/ThirdParty/ANGLE/src/tests/deqp.gni
rename to Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp.gni
index e993b75..2a7f9ca 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp.gni
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp.gni
@@ -2,7 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-deqp_path = "../../third_party/deqp/src"
+import("../../../gni/angle.gni")
+deqp_path = "../../third_party/VK-GL-CTS/src"
 
 deqp_include_dirs = [
   "$deqp_path/executor",
@@ -24,6 +25,8 @@
   "$deqp_path/modules/gles31/functional",
   "$deqp_path/modules/gles31/stress",
   "$deqp_path/modules/glusecases",
+  "${angle_glslang_dir}",
+  "${angle_spirv_tools_dir}",
 ]
 
 deqp_gles2_sources = [
@@ -49,6 +52,8 @@
   "$deqp_path/modules/gles2/functional/es2fBufferTestUtil.hpp",
   "$deqp_path/modules/gles2/functional/es2fBufferWriteTests.cpp",
   "$deqp_path/modules/gles2/functional/es2fBufferWriteTests.hpp",
+  "$deqp_path/modules/gles2/functional/es2fClipControlTests.cpp",
+  "$deqp_path/modules/gles2/functional/es2fClipControlTests.hpp",
   "$deqp_path/modules/gles2/functional/es2fClippingTests.cpp",
   "$deqp_path/modules/gles2/functional/es2fClippingTests.hpp",
   "$deqp_path/modules/gles2/functional/es2fColorClearTest.cpp",
@@ -905,7 +910,11 @@
   "$deqp_path/external/openglcts/modules/common/glcSampleVariablesTests.hpp",
   "$deqp_path/external/openglcts/modules/common/glcSeparableProgramsTransformFeedbackTests.cpp",
   "$deqp_path/external/openglcts/modules/common/glcSeparableProgramsTransformFeedbackTests.hpp",
-  "$deqp_path/external/openglcts/modules/common/glcShaderConstExprTests.cpp",
+
+  # Override to work around a dEQP bug: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1859
+  # "$deqp_path/external/openglcts/modules/common/glcShaderConstExprTests.cpp",
+  "deqp_support/glcShaderConstExprTests_override.cpp",
+
   "$deqp_path/external/openglcts/modules/common/glcShaderConstExprTests.hpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderGroupVoteTests.cpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderGroupVoteTests.hpp",
@@ -919,7 +928,11 @@
   "$deqp_path/external/openglcts/modules/common/glcShaderLibraryCase.hpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderLoopTests.cpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderLoopTests.hpp",
-  "$deqp_path/external/openglcts/modules/common/glcShaderMacroTests.cpp",
+
+  # Override to work around a dEQP bug: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1859
+  # "$deqp_path/external/openglcts/modules/common/glcShaderMacroTests.cpp",
+  "deqp_support/glcShaderMacroTests_override.cpp",
+
   "$deqp_path/external/openglcts/modules/common/glcShaderMacroTests.hpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderMultisampleInterpolationTests.cpp",
   "$deqp_path/external/openglcts/modules/common/glcShaderMultisampleInterpolationTests.hpp",
@@ -976,6 +989,7 @@
   "$deqp_path/external/openglcts/modules/glesext/texture_border_clamp/esextcTextureBorderClampTests.hpp",
   "$deqp_path/external/openglcts/modules/glesext/texture_buffer/esextcTextureBufferTests.hpp",
   "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTests.hpp",
+  "$deqp_path/external/openglcts/modules/glesext/texture_shadow_lod/esextcTextureShadowLodFunctionsTest.hpp",
   "$deqp_path/external/openglcts/modules/glesext/draw_buffers_indexed/esextcDrawBuffersIndexedTests.hpp",
   "$deqp_path/modules/gles2/tes2Context.hpp",
   "$deqp_path/modules/gles2/tes2TestPackage.hpp",
@@ -1365,6 +1379,7 @@
   "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTests.cpp",
   "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTex3DValidation.cpp",
   "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTex3DValidation.hpp",
+  "$deqp_path/external/openglcts/modules/glesext/texture_shadow_lod/esextcTextureShadowLodFunctionsTest.cpp",
 ]
 
 deqp_framework_debase_sources = [
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_data_autogen.gni b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_data_autogen.gni
new file mode 100644
index 0000000..d63cabc
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_data_autogen.gni
@@ -0,0 +1,323 @@
+# GENERATED FILE - DO NOT EDIT.
+# Generated by: gen_vk_gl_cts_build.py
+#
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("deqp.gni")
+
+angle_deqp_data_gles2 = [
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/brick.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_113x89.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/photo_helsinki_mip_7.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_neg_x.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_neg_y.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_neg_z.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_pos_x.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_pos_y.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_61x61_pos_z.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_x_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_y_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_neg_z_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_x_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_y_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/data/etc1/skybox_pos_z_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/conditionals.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/constant_expressions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/constants.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/declarations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/fragdata.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/invalid_constant_expressions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/invalid_implicit_conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/invalid_texture_functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/keywords.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/linkage.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/loops.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/misc.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/preprocessor.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/qualification_order.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/reserved_operators.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/scoping.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/swizzles.test",
+]
+
+angle_deqp_data_gles3 = [
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/brick.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_113x89.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/photo_helsinki_mip_7.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_neg_x.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_neg_y.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_neg_z.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_pos_x.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_pos_y.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_61x61_pos_z.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_x_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_y_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_neg_z_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_x_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_y_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_0.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_1.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_2.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_3.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_4.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_5.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/data/etc1/skybox_pos_z_mip_6.pkm",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/conditionals.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/constant_expressions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/constants.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/declarations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/fragdata.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/indexing.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/invalid_implicit_conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/invalid_texture_functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/keywords.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/large_constant_arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/linkage.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/loops.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/negative.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/preprocessor.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/qualification_order.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/scoping.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/switch.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/swizzle_math_operations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/swizzles.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/shaders/uniform_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/recipient.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/variant_1.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/variant_2.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/recipient.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_1.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_2.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_3.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_4.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/vertexShader.glsl",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/declarations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/literal_parsing.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/name_hiding.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/preprocessor.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/switch.test",
+]
+
+angle_deqp_data_gles31 = [
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/barrier_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_equal_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_even_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_quads_fractional_odd_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_equal_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_even_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_cover_triangles_fractional_odd_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_equal_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_even_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_quads_fractional_odd_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_equal_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_even_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/fill_overlap_triangles_fractional_odd_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/gl_position_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_equal_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_equal_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_equal_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_even_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_0.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_1.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/isolines_fractional_odd_spacing_ref_2.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/patch_vertices_10_in_10_out_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/patch_vertices_10_in_5_out_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/patch_vertices_5_in_10_out_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/primitive_id_tcs_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/primitive_id_tes_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/user_defined_io_isolines_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/user_defined_io_quads_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/data/tessellation/user_defined_io_triangles_ref.png",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/android_extension_pack.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/arrays_of_arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/declarations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/implicit_conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_geometry.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_geometry_uniform_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_geometry_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_io_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_shader_storage_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_tessellation.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_tessellation_geometry.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_tessellation_geometry_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_tessellation_uniform_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_tessellation_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/linkage_uniform.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/separate_shader_validation.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/tessellation_negative_user_defined_io.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/uniform_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es31/uniform_location.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/android_extension_pack.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/arrays_of_arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/functions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/implicit_conversions.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_geometry.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_geometry_uniform_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_geometry_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_io_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_shader_storage_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_tessellation.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_tessellation_geometry.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_tessellation_geometry_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_tessellation_uniform_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_tessellation_varying_types.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/linkage_uniform.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/separate_shader_validation.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/tessellation_negative_user_defined_io.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/uniform_block.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gles31/shaders/es32/uniform_location.test",
+]
+
+angle_deqp_external_graphicsfuzz_data_gles3 = [
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/recipient.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/variant_1.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/bubblesort_flag/variant_2.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/recipient.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_1.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_2.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_3.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/synthetic/variant_4.frag",
+  "$root_gen_dir/vk_gl_cts_data/data/gles3/graphicsfuzz/vertexShader.glsl",
+]
+
+angle_deqp_external_openglcts_data_gles3 = [
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/arrays.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/declarations.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/literal_parsing.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/name_hiding.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/preprocessor.test",
+  "$root_gen_dir/vk_gl_cts_data/data/gl_cts/data/gles3/switch.test",
+]
+
+angle_deqp_data_copy_targets = [
+  "deqp_support:vk_gl_cts_data_data_gles2_data",
+  "deqp_support:vk_gl_cts_data_data_gles2_data_etc1",
+  "deqp_support:vk_gl_cts_data_data_gles2_shaders",
+  "deqp_support:vk_gl_cts_data_data_gles3_data",
+  "deqp_support:vk_gl_cts_data_data_gles3_data_etc1",
+  "deqp_support:vk_gl_cts_data_data_gles3_shaders",
+  "deqp_support:vk_gl_cts_data_data_gles31_data_tessellation",
+  "deqp_support:vk_gl_cts_data_data_gles31_shaders_es31",
+  "deqp_support:vk_gl_cts_data_data_gles31_shaders_es32",
+  "deqp_support:vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz",
+  "deqp_support:vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz_bubblesort_flag",
+  "deqp_support:vk_gl_cts_data_external_graphicsfuzz_data_gles3_graphicsfuzz_synthetic",
+  "deqp_support:vk_gl_cts_data_external_openglcts_data_gles3",
+]
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations
new file mode 100644
index 0000000..eaed281
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations
@@ -0,0 +1,251 @@
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// Only Vulkan supports multithreading
+3916 OPENGL : dEQP-EGL.functional.sharing.gles2.multithread.* = SKIP
+3916 OPENGL : dEQP-EGL.functional.multithread.* = SKIP
+3916 OPENGL : dEQP-EGL.functional.render.multi_thread.* = SKIP
+3916 OPENGL : dEQP-EGL.functional.color_clears.multi_thread.* = SKIP
+3916 GLES : dEQP-EGL.functional.sharing.gles2.multithread.* = SKIP
+3916 GLES : dEQP-EGL.functional.multithread.* = SKIP
+3916 GLES : dEQP-EGL.functional.render.multi_thread.* = SKIP
+3916 GLES : dEQP-EGL.functional.color_clears.multi_thread.* = SKIP
+3916 D3D11 : dEQP-EGL.functional.sharing.gles2.multithread.* = SKIP
+3916 D3D11 : dEQP-EGL.functional.multithread.* = SKIP
+3916 D3D11 : dEQP-EGL.functional.render.multi_thread.* = SKIP
+3916 D3D11 : dEQP-EGL.functional.color_clears.multi_thread.* = SKIP
+3916 D3D9 : dEQP-EGL.functional.sharing.gles2.multithread.* = SKIP
+3916 D3D9 : dEQP-EGL.functional.multithread.* = SKIP
+3916 D3D9 : dEQP-EGL.functional.render.multi_thread.* = SKIP
+3916 D3D9 : dEQP-EGL.functional.color_clears.multi_thread.* = SKIP
+
+// Seems to time out on Linux.
+4031916 VULKAN : dEQP-EGL.functional.multithread.* = SKIP
+
+// These tests require pixmap surfaces. On many platforms they are unsupported.
+3917 ANDROID VULKAN : dEQP-EGL.functional.render.multi_thread.* = FAIL
+3917 ANDROID VULKAN : dEQP-EGL.functional.color_clears.multi_thread.* = FAIL
+
+// dEQP doesn't handle configs created for extensions
+1662 WIN : dEQP-EGL.functional.color_clears.single_context.gles2.other = FAIL
+1662 WIN : dEQP-EGL.functional.color_clears.single_context.gles3.other = FAIL
+1662 WIN : dEQP-EGL.functional.color_clears.multi_context.gles2.other = FAIL
+1662 WIN : dEQP-EGL.functional.color_clears.multi_context.gles3.other = FAIL
+1662 WIN : dEQP-EGL.functional.render.single_context.gles2.other = FAIL
+1662 WIN : dEQP-EGL.functional.render.single_context.gles3.other = FAIL
+1662 WIN : dEQP-EGL.functional.render.multi_context.gles2.other = FAIL
+1662 WIN : dEQP-EGL.functional.render.multi_context.gles3.other = FAIL
+1662 WIN : dEQP-EGL.functional.render.multi_context.gles2_gles3.other = FAIL
+1662 WIN : dEQP-EGL.functional.native_coord_mapping.native_window.other_clear = FAIL
+1662 WIN : dEQP-EGL.functional.native_coord_mapping.native_window.other_render = FAIL
+1662 WIN : dEQP-EGL.functional.query_context.get_current_context.other = FAIL
+1662 WIN : dEQP-EGL.functional.query_context.get_current_surface.other = FAIL
+1662 WIN : dEQP-EGL.functional.query_context.get_current_display.other = FAIL
+1662 WIN : dEQP-EGL.functional.query_context.query_context.other = FAIL
+1662 WIN : dEQP-EGL.functional.native_color_mapping.native_window.other_clear = SKIP
+1662 WIN : dEQP-EGL.functional.native_color_mapping.native_window.other_render = SKIP
+
+// Intentionally causes TDRs that eventually blacklist the application
+2319 : dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.* = SKIP
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Temprory entries: they should be removed once the bugs are fixed.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// Flaky since we enabled depth/stencil backbuffer in all tests.
+2429 WIN NVIDIA : dEQP-EGL.functional.query_context.query_context.rgba8888_window = FAIL
+
+// TODO(jmadill): Triage these into permananent and temporary failures.
+1340 WIN : dEQP-EGL.functional.query_config.get_configs.get_configs_bounds = FAIL
+3270 WIN : dEQP-EGL.functional.choose_config.simple.selection_only.config_id = FAIL
+3270 WIN : dEQP-EGL.functional.choose_config.simple.selection_and_sort.config_id = FAIL
+1340 WIN : dEQP-EGL.functional.render.single_context.gles2.rgba5551_window = FAIL
+1340 WIN : dEQP-EGL.functional.render.single_context.gles2.rgba5551_pbuffer = FAIL
+1340 WIN : dEQP-EGL.functional.render.single_context.gles3.rgba5551_window = FAIL
+1340 WIN : dEQP-EGL.functional.render.single_context.gles3.rgba5551_pbuffer = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles2.rgba5551_window = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles2.rgba5551_pbuffer = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles3.rgba5551_window = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles3.rgba5551_pbuffer = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles2_gles3.rgba5551_window = FAIL
+1340 WIN : dEQP-EGL.functional.render.multi_context.gles2_gles3.rgba5551_pbuffer = FAIL
+1340 WIN : dEQP-EGL.functional.negative_api.choose_config = SKIP
+1340 WIN : dEQP-EGL.functional.negative_api.surface_attrib = SKIP
+1340 WIN : dEQP-EGL.functional.negative_api.swap_interval = FAIL
+2382 WIN : dEQP-EGL.functional.native_color_mapping.native_window.* = SKIP
+1340 WIN : dEQP-EGL.functional.native_coord_mapping.native_window.* = FAIL
+2716 WIN : dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap.* = SKIP
+2716 WIN : dEQP-EGL.functional.preserve_swap.preserve.read_before_swap.* = SKIP
+1340 WIN : dEQP-EGL.functional.resize.back_buffer.* = SKIP
+1340 WIN : dEQP-EGL.functional.resize.pixel_density.* = SKIP
+
+// Windows OpenGL failures
+2546 WIN : dEQP-EGL.functional.resize.surface_size.shrink = SKIP
+2546 WIN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_depth_stencil = FAIL
+2546 WIN : dEQP-EGL.functional.thread_cleanup.* = SKIP
+
+// Windows Vulkan failures
+2635 WIN VULKAN : dEQP-EGL.functional.multicontext.non_shared_clear = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.multicontext.non_shared_make_current = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.multicontext.shared_clear = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.multicontext.shared_make_current = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.query_surface.set_attribute.pbuffer.rgba8888_depth_stencil = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.query_surface.set_attribute.pbuffer.rgba8888_no_depth_no_stencil = FAIL
+2715 WIN VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgb888_depth_no_stencil = FAIL
+2715 WIN VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgb888_depth_stencil = FAIL
+2715 WIN VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgb888_no_depth_no_stencil = FAIL
+2715 WIN VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_depth_no_stencil = FAIL
+2715 WIN VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_no_depth_no_stencil = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.resize.surface_size.grow = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.resize.surface_size.stretch_height = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.resize.surface_size.stretch_width = FAIL
+2635 WIN VULKAN : dEQP-EGL.functional.wide_color.pbuffer_8888_colorspace_default = FAIL
+2716 WIN VULKAN : dEQP-EGL.functional.preserve_swap.no_preserve.* = FAIL
+
+// Linux failures
+2546 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles1.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles1_gles2.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles1_gles2_gles3.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles3.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.single_context.gles1.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.color_clears.single_context.gles3.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.create_surface.pixmap.rgba8888_depth_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.create_surface.pixmap.rgba8888_no_depth_no_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.negative_api.copy_buffers = SKIP
+2546 LINUX : dEQP-EGL.functional.query_context.get_current_context.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.query_context.get_current_display.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.query_context.get_current_surface.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.query_context.query_context.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.query_surface.set_attribute.pixmap.rgba8888_depth_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.query_surface.set_attribute.pixmap.rgba8888_no_depth_no_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.query_surface.simple.pixmap.rgba8888_depth_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.query_surface.simple.pixmap.rgba8888_no_depth_no_stencil = SKIP
+2546 LINUX : dEQP-EGL.functional.render.multi_context.* = SKIP
+2546 LINUX : dEQP-EGL.functional.render.single_context.gles2.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.render.single_context.gles3.rgba8888_pixmap = SKIP
+2546 LINUX : dEQP-EGL.functional.thread_cleanup.* = SKIP
+2546 LINUX : dEQP-EGL.functional.native_color_mapping.native_window.* = FAIL
+2546 LINUX : dEQP-EGL.functional.native_coord_mapping.native_window.* = FAIL
+2546 LINUX : dEQP-EGL.functional.negative_api.choose_config = FAIL
+2546 LINUX : dEQP-EGL.functional.negative_api.swap_interval = FAIL
+2546 LINUX : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_depth_stencil = FAIL
+2546 LINUX : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_no_depth_no_stencil = FAIL
+
+// Linux Vulkan failures
+2635 LINUX VULKAN : dEQP-EGL.functional.query_surface.set_attribute.pbuffer.rgba8888_depth_stencil = FAIL
+2635 LINUX VULKAN : dEQP-EGL.functional.query_surface.set_attribute.pbuffer.rgba8888_no_depth_no_stencil = FAIL
+2715 LINUX VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgb888_depth_stencil = FAIL
+2715 LINUX VULKAN : dEQP-EGL.functional.query_surface.simple.pbuffer.rgb888_no_depth_no_stencil = FAIL
+2716 LINUX VULKAN : dEQP-EGL.functional.preserve_swap.no_preserve.* = FAIL
+
+// Mac failures
+2546 MAC : dEQP-EGL.functional.native_color_mapping.native_window.* = FAIL
+2546 MAC : dEQP-EGL.functional.native_coord_mapping.native_window.* = FAIL
+2546 MAC : dEQP-EGL.functional.negative_api.choose_config = FAIL
+2546 MAC : dEQP-EGL.functional.negative_api.copy_buffers = FAIL
+2546 MAC : dEQP-EGL.functional.negative_api.swap_interval = FAIL
+2546 MAC : dEQP-EGL.functional.query_surface.simple.pbuffer.rgba8888_depth_stencil = FAIL
+2546 MAC : dEQP-EGL.functional.thread_cleanup.* = SKIP
+
+// Android GLES-only failues
+2567 ANDROID GLES : dEQP-EGL.functional.image.api.create_image_gles2_tex2d_red = FAIL
+2567 ANDROID GLES : dEQP-EGL.functional.image.api.create_image_gles2_tex2d_rg = FAIL
+2716 ANDROID GLES : dEQP-EGL.functional.preserve_swap.preserve.* = FAIL
+
+// Android failures
+2546 ANDROID : dEQP-EGL.functional.buffer_age.* = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_only.transparent_red_value = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_only.transparent_green_value = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_only.transparent_blue_value = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_and_sort.transparent_red_value = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_and_sort.transparent_green_value = FAIL
+3270 ANDROID : dEQP-EGL.functional.choose_config.simple.selection_and_sort.transparent_blue_value = FAIL
+2546 ANDROID : dEQP-EGL.functional.color_clears.multi_context.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.color_clears.single_context.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.native_color_mapping.native_window.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.native_coord_mapping.native_window.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.negative_api.copy_buffers = FAIL
+2546 ANDROID : dEQP-EGL.functional.partial_update.odd_clear_* = FAIL
+2546 ANDROID : dEQP-EGL.functional.partial_update.odd_render_* = FAIL
+2546 ANDROID : dEQP-EGL.functional.partial_update.render_* = FAIL
+2546 ANDROID : dEQP-EGL.functional.render.multi_context.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.render.single_context.* = SKIP
+2546 ANDROID : dEQP-EGL.functional.thread_cleanup.multi_context_* = SKIP
+2546 ANDROID : dEQP-EGL.functional.thread_cleanup.single_context_* = FAIL
+
+// Vulkan
+3081 VULKAN : dEQP-EGL.functional.image.create.gles2_renderbuffer_depth16_depth_buffer = SKIP
+3081 VULKAN : dEQP-EGL.functional.image.create.gles2_renderbuffer_stencil_stencil_buffer = SKIP
+3081 VULKAN : dEQP-EGL.functional.image.modify.renderbuffer_depth16_renderbuffer_clear_depth = SKIP
+3081 VULKAN : dEQP-EGL.functional.image.modify.renderbuffer_stencil_renderbuffer_clear_stencil = SKIP
+3081 VULKAN : dEQP-EGL.functional.image.render_multiple_contexts.gles2_renderbuffer_depth16_depth_buffer = SKIP
+3081 VULKAN : dEQP-EGL.functional.image.render_multiple_contexts.gles2_renderbuffer_stencil_stencil_buffer = SKIP
+
+// Android Vulkan
+2546 ANDROID VULKAN : dEQP-EGL.functional.create_surface.window.other = SKIP
+2546 ANDROID VULKAN : dEQP-EGL.functional.query_context.get_current_surface.other = SKIP
+2546 ANDROID VULKAN : dEQP-EGL.functional.query_surface.set_attribute.window.other = SKIP
+2546 ANDROID VULKAN : dEQP-EGL.functional.query_surface.simple.window.other = SKIP
+2546 ANDROID VULKAN : dEQP-EGL.functional.resize.pixel_density.* = SKIP
+2546 ANDROID VULKAN : dEQP-EGL.functional.wide_color.window* = SKIP
+
+// Robustness failures on multiple platforms
+3711 : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.* = FAIL
+3711 : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.* = FAIL
+
+// ES 1 tests
+2306 WIN : dEQP-EGL.functional.color_clears.single_context.gles1* = FAIL
+2306 WIN : dEQP-EGL.functional.color_clears.multi_context.gles1* = FAIL
+2306 MAC : dEQP-EGL.functional.color_clears.single_context.gles1* = FAIL
+2306 MAC : dEQP-EGL.functional.color_clears.multi_context.gles1* = FAIL
+2306 LINUX : dEQP-EGL.functional.color_clears.single_context.gles1* = FAIL
+2306 LINUX : dEQP-EGL.functional.color_clears.multi_context.gles1* = FAIL
+
+// Tests failing since the Jan 2018 roll of dEQP
+2341 : dEQP-EGL.functional.swap_buffers.* = SKIP
+2330 : dEQP-EGL.functional.robustness.create_context.no_reset_notification = SKIP
+2330 : dEQP-EGL.functional.robustness.create_context.lose_context_on_reset = SKIP
+2330 : dEQP-EGL.functional.robustness.reset_context.fixed_function_pipeline.reset_status.index_buffer_out_of_bounds = SKIP
+2330 : dEQP-EGL.functional.robustness.reset_context.fixed_function_pipeline.reset_status.vertex_buffer_out_of_bounds = SKIP
+
+// Tests were being hidden by flakiness (anglebug.com/3271)
+3325 : dEQP-EGL.functional.fence_sync.* = SKIP
+3325 : dEQP-EGL.functional.reusable_sync.* = SKIP
+
+// Nexus 5x
+2546 NEXUS5X : dEQP-EGL.functional.query_context.get_current_context.* = SKIP
+2546 NEXUS5X : dEQP-EGL.functional.query_context.get_current_display.* = SKIP
+2546 NEXUS5X : dEQP-EGL.functional.query_context.get_current_surface.r* = FAIL
+2546 NEXUS5X : dEQP-EGL.functional.query_context.query_context.* = SKIP
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations
new file mode 100644
index 0000000..55f7ae7
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations
@@ -0,0 +1,380 @@
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// Skip these tests due to timeouts
+1034 : dEQP-GLES2.functional.flush_finish.* = SKIP
+
+// Failures related to not supporting separate depth/stencil masks on D3D11.
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_* = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.* = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.* = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.random.* = FAIL
+1655 D3D11 : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.* = FAIL
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Temporary entries: they should be removed once the bugs are fixed.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// Vertex attribute aliasing is not supported on D3D
+3467 D3D9 : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = FAIL
+3467 D3D9 : dEQP-GLES2.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+3467 D3D11 : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = FAIL
+3467 D3D11 : dEQP-GLES2.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+
+// Shader failures.
+3434 NEXUS5X GLES : dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_* = FAIL
+
+// The fragment_ops.depth_stencil.random tests all seem to fail on D3D11.
+3282 D3D11 : dEQP-GLES2.functional.fragment_ops.depth_stencil.random.* = FAIL
+
+// Failures related to the depth_range on Windows / NVIDIA and ATI.
+2426 D3D11 : dEQP-GLES2.functional.depth_range.write.reverse = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.write.half_to_zero = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.write.one_to_half = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.write.0_8_to_third = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.compare.reverse = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.compare.half_to_zero = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.compare.one_to_half = FAIL
+2426 D3D11 : dEQP-GLES2.functional.depth_range.compare.0_8_to_third = FAIL
+
+// Windows D3D11 Intel and NVIDIA. Suppressed on all cards for simplicity.
+3292 D3D11 : dEQP-GLES2.functional.polygon_offset.default_render_with_units = FAIL
+3292 D3D11 : dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units = FAIL
+
+// Common subexpression invariance
+3293 D3D11 : dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1 = FAIL
+3293 D3D11 : dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1 = FAIL
+3293 D3D11 : dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1 = FAIL
+
+// Fails with significant image differences
+3295 D3D11 : dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod = FAIL
+
+// Only fails in D3D11 32-bit.
+1418 D3D11 : dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_pos_x_pos_y_pos_z_and_neg_x_pos_y_pos_z_and_neg_x_neg_y_neg_z = FAIL
+
+// D3D11 AMD
+2342 D3D11 AMD : dEQP-GLES2.functional.texture.size.cube.64x64_l8 = FAIL
+2342 D3D11 AMD : dEQP-GLES2.functional.texture.size.cube.64x64_rgb888 = FAIL
+2342 D3D11 AMD : dEQP-GLES2.functional.texture.size.cube.64x64_rgba8888 = FAIL
+
+// Additional texture.vertex.cube failures on AMD
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_clamp = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_repeat = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_mirror = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_clamp = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat = FAIL
+3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror = FAIL
+
+// Quadro P400
+// TODO(jmadill): Narrow to P400 device only: 0x1CB3.
+2222 D3D11 NVIDIA : dEQP-GLES2.functional.shaders.functions.control_flow.return_in_nested_loop_fragment = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES2.functional.shaders.functions.control_flow.return_in_nested_loop_vertex = FAIL
+
+// AMD GPU vertex shader texture sampling is not precise enough when rendering to 32-bit backbuffers
+2337 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.2d.wrap.* = FAIL
+2337 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_* = FAIL
+2337 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_* = FAIL
+
+// Several mipmap sub tests fail on AMD. Mark them all as failing conservatively.
+3296 D3D11 AMD : dEQP-GLES2.functional.texture.mipmap.* = FAIL
+
+// Failures on the D3D11 bots that do not reproduce locally
+// TODO(jmadill): Figure out why these fail on the bots, but not locally.
+1108 D3D11 : dEQP-GLES2.functional.shaders.struct.local.dynamic_loop_struct_array_fragment = FAIL
+1108 D3D11 : dEQP-GLES2.functional.shaders.invariance.highp.loop_2 = FAIL
+1108 D3D11 : dEQP-GLES2.functional.shaders.invariance.mediump.loop_2 = FAIL
+
+// OpenGL desktop back-end failures
+1656 OPENGL : dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8_alpha8 = FAIL
+1656 OPENGL : dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.srgb8_alpha8 = FAIL
+1656 OPENGL : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.srgb8_alpha8 = FAIL
+3291 OPENGL : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear = FAIL
+
+// Linux OpenGL Intel
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat = FAIL
+3302 OPENGL INTEL LINUX : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat = FAIL
+
+// Linux OpenGL NVIDIA
+3303 OPENGL NVIDIA LINUX : dEQP-GLES2.functional.texture.mipmap.cube.projected.nearest_linear = FAIL
+
+// Mac OpenGL specific failures
+3466 MAC OPENGL : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = SKIP
+3466 MAC OPENGL : dEQP-GLES2.functional.attribute_location.bind_aliasing.max_cond* = SKIP
+3433 MAC OPENGL : dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_vertex = FAIL
+1143 MAC OPENGL : dEQP-GLES2.functional.shaders.scoping.valid.local_int_variable_hides_struct_type_* = FAIL
+1143 MAC OPENGL : dEQP-GLES2.functional.shaders.scoping.valid.local_struct_variable_hides_struct_type_* = FAIL
+1143 MAC OPENGL : dEQP-GLES2.functional.shaders.scoping.valid.function_parameter_hides_struct_type_* = FAIL
+1143 MAC OPENGL : dEQP-GLES2.functional.shaders.random.trigonometric.vertex.65 = FAIL
+2631 MAC OPENGL : dEQP-GLES2.functional.shaders.operator.sequence.side_effects.affect_* = FAIL
+3317 MAC OPENGL : dEQP-GLES2.functional.shaders.linkage.varying_4 = FAIL
+
+// MAC OPENGL INTEL specific
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.complex_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.complex_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.long_masked_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.long_masked_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.masked_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.masked_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.masked_scissored_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.masked_scissored_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.scissored_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.scissored_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.color_clear.short_scissored_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.cube_alpha = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.cube_luminance = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.cube_luminance_alpha = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.cube_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.cube_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.discard.dynamic_loop_never = SKIP
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.discard.function_static_loop_never = SKIP
+2137 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.discard.static_loop_never = SKIP
+
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.polygon_offset.default_render_with_units = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_3 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_3 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_3 = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_repeat_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_repeat_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_repeat_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_repeat_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_mirror_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_mirror_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_mirror_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_mirror_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_repeat_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_repeat_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_repeat_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_repeat_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_mirror_rgba8888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_mirror_rgb888_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_mirror_rgba4444_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_mirror_l8_pot = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_nearest_* = FAIL
+
+3531 MAC OPENGL INTEL : dEQP-GLES2.functional.fbo.render.color_clear.tex2d_rgb = FAIL
+3531 MAC OPENGL INTEL : dEQP-GLES2.functional.fbo.render.color_clear.tex2d_rgb_depth_component16 = FAIL
+3531 MAC OPENGL INTEL : dEQP-GLES2.functional.fbo.render.color_clear.tex2d_rgb_stencil_index8 = FAIL
+3531 MAC OPENGL INTEL : dEQP-GLES2.functional.fbo.render.stencil_clear.tex2d_rgb_stencil_index8 = FAIL
+
+// Mac AMD OpenGL specific
+2137 MAC OPENGL AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip = FAIL
+3317 MAC OPENGL AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center = FAIL
+3317 MAC OPENGL AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner = FAIL
+
+// Android GLES backend only failures
+1488 GLES ANDROID : dEQP-GLES2.functional.shaders.return.conditional_return_always_vertex = FAIL
+1488 GLES ANDROID : dEQP-GLES2.functional.shaders.return.conditional_return_always_fragment = FAIL
+1488 GLES ANDROID : dEQP-GLES2.functional.shaders.return.output_write_always_vertex = FAIL
+1488 GLES ANDROID : dEQP-GLES2.functional.shaders.return.output_write_always_fragment = FAIL
+2631 GLES ANDROID : dEQP-GLES2.functional.shaders.operator.sequence.side_effects.affect_* = FAIL
+2630 GLES ANDROID : dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_* = FAIL
+2630 GLES ANDROID : dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_* = FAIL
+
+// Nexus 5x failures
+3309 NEXUS5X GLES : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+3716 NEXUS5X GLES : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_int = FAIL
+3716 NEXUS5X GLES : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short = FAIL
+3716 NEXUS5X GLES : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.depth_stencil_unsigned_int_24_8 = FAIL
+3716 NEXUS5X GLES : dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.depth_stencil_unsigned_int_24_8 = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.fbo.render.texsubimage.after_render_tex2d_rgb = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.polygon_offset.default_result_depth_clamp = FAIL
+3715 NEXUS5X GLES : dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_vertex = FAIL
+3715 NEXUS5X GLES : dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_fragment = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.shaders.return.output_write_in_func_always_vertex = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.shaders.return.output_write_in_func_always_fragment = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.texture.mipmap.cube.* = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_* = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_* = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_* = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.uniform_api.random.3 = FAIL
+3309 NEXUS5X GLES : dEQP-GLES2.functional.uniform_api.random.54 = FAIL
+
+// D3D11 AMD already covered by Line 148
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest = FAIL
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear = FAIL
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest = FAIL
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear = FAIL
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest = FAIL
+3243 D3D11 INTEL : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest = FAIL
+3243 D3D11 NVIDIA : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear = FAIL
+
+// Fail with very tiny pixel differences
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat = FAIL
+3240 D3D11 : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror = FAIL
+
+// Android Vulkan backend only failures
+2549 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil* = SKIP
+4109 VULKAN ANDROID : dEQP-GLES2.functional.texture.mipmap.cube.projected.nearest_linear = FAIL
+
+// Adreno line rasterization is not conformant.
+2830 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.primitives.line_loop = FAIL
+2830 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.primitives.line_strip = FAIL
+2830 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.primitives.lines = FAIL
+
+// Failing on the Pixel 2.
+2808 VULKAN ANDROID : dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_w = FAIL
+3306 VULKAN ANDROID : dEQP-GLES2.functional.polygon_offset.default_factor_1_slope = FAIL
+3306 VULKAN ANDROID : dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope = FAIL
+
+// These tests also fail on AMD windows driver as it is not allowed to use emulation due to errors.
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat = FAIL
+3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror = FAIL
+
+// Vulkan AMD drivers don't seem to support wide point clipping.
+2463 VULKAN WIN AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip = FAIL
+2463 VULKAN WIN AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center = FAIL
+2463 VULKAN WIN AMD : dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner = FAIL
+
+// These failures are possibly due to an AMD driver bug.
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.draw.random.14 = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.draw.random.30 = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.draw.random.41 = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_2_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_2_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_float* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_float* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_3_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_6_short* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float* = SKIP
+2847 VULKAN WIN AMD : dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short* = SKIP
+
+// Fails after OpenGL line rasterization rules implementation. Possibly a bug in FragCoord.
+2809 VULKAN WIN AMD : dEQP-GLES2.functional.clipping.line.long_line_clip = FAIL
+
+// Polygon offset failures
+3301 VULKAN WIN AMD : dEQP-GLES2.functional.polygon_offset.default_result_depth_clamp = FAIL
+3301 VULKAN WIN AMD : dEQP-GLES2.functional.polygon_offset.default_factor_1_slope = FAIL
+3301 VULKAN WIN AMD : dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units = FAIL
+
+// Failures on newer NVIDIA drivers (411.95) and passes on older drivers (388.16).
+2976 VULKAN NVIDIA : dEQP-GLES2.functional.shaders.invariance.* = FAIL
+// Fails on 431.02 NVIDIA driver
+3748 VULKAN WIN NVIDIA : dEQP-GLES2.functional.fbo.render.repeated_clear.* = FAIL
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations
new file mode 100644
index 0000000..4fcbaa3
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations
@@ -0,0 +1,694 @@
+// Copyright 2016 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//  SWIFTSHADER
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// Crashing Tests
+1920 NVIDIA D3D11 : dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_max = SKIP
+1442 D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.builtin_gl_position = SKIP
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.builtin_gl_position = SKIP
+
+// Crashing Tests on Linux on Intel HD 630.
+2349 LINUX INTEL : dEQP-GLES31.functional.synchronization.in_invocation.image_* = SKIP
+2349 LINUX INTEL : dEQP-GLES31.functional.synchronization.inter_invocation.image_* = SKIP
+2349 LINUX INTEL : dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_small = SKIP
+2349 LINUX INTEL : dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_small = SKIP
+2349 LINUX INTEL : dEQP-GLES31.functional.compute.basic.image_barrier_multiple = SKIP
+
+// Failing Tests on Linux on Intel HD 630.
+2349 LINUX INTEL : dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.program_binary = FAIL
+
+1442 D3D11 : dEQP-GLES31.functional.image_load_store.* = SKIP
+
+// Times out shader compilation because it uses so many resources.
+3445 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 = SKIP
+
+// D3D11 Failing Tests
+// Below cases are failed due to binding multi-UAVs to a single buffer is not supported in D3D backend.
+// http://anglebug.com/3032
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.single_struct.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.single_struct_array.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.single_nested_struct.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.single_nested_struct_array.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.unsized_struct_array.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.2_level_unsized_struct_array.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.unsized_nested_struct_array.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.multi_basic_types.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.multi_nested_struct.single_buffer* = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.random.nested_structs_arrays_instance_arrays.13 = FAIL
+3032 D3D11 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer* = FAIL
+
+1442 D3D11 : dEQP-GLES31.functional.state_query.integer.max_compute_atomic_counters_* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.state_query.integer.max_atomic_counter_buffer_size_* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.state_query.integer.max_combined_atomic_counters* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.state_query.integer.max_uniform_buffer_bindings_* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.state_query.integer.max_combined_texture_image_units_* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.state_query.program.compute_work_group_size_get_programiv = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.async.case_4_log = SKIP
+1442 D3D11 : dEQP-GLES31.functional.debug.async.case_5_callback = SKIP
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_2 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_3 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_9 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_10 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_27 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_filters.case_28 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_groups.case_2 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_groups.case_3 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_groups.case_9 = FAIL
+1442 D3D11 : dEQP-GLES31.functional.debug.error_groups.case_10 = FAIL
+
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.float_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.float_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.float_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.fma.vec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.intbitstofloat.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.intbitstofloat.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.intbitstofloat.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.uintbitstofloat.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.uintbitstofloat.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.common.uintbitstofloat.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm4x8_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm4x8_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm4x8_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.unpacksnorm4x8_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm4x8_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm4x8_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm4x8_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.unpackunorm4x8_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.unpacksnorm2x16_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm2x16_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm2x16_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm2x16_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.unpackunorm2x16_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packhalf2x16_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.unpackhalf2x16_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.int_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.int_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.int_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uint_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uint_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uint_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec2_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec2_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec2_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec3_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec3_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec3_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_lowp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_mediump_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_highp_geometry = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.builtin_constants.geometry_shader.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.state_query.program.geometry_shader_state_get_programiv = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.query.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.basic.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.conversion.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.emit.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.varying.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.layered.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.instanced.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.input.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.negative.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.geometry_shading.vertex_transform_feedback.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.shaders.linkage.es31.geometry.* = FAIL
+1941 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_directive.geometry_shader = FAIL
+1941 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.log.shader_directive.geometry_shader = FAIL
+1941 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.get_error.shader_directive.geometry_shader = FAIL
+2826 D3D11 : dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.texture_swizzle.* = FAIL
+2826 D3D11 : dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.* = FAIL
+2826 D3D11 : dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.* = FAIL
+3865 D3D11 : dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_large = FAIL
+3865 D3D11 : dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_large = FAIL
+
+// Failing with dEQP roll
+3447 D3D11 : dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.22 = FAIL
+3447 D3D11 : dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.41 = FAIL
+
+// OPENGL Failing Tests
+1665 WIN NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.negative.command_offset_not_in_buffer_unsigned32_wrap = FAIL
+1442 NVIDIA OPENGL : dEQP-GLES31.functional.fbo.no_attachments.maximums.all = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.atomic_counter_buffer.referenced_by* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.buffer_limited_query.resource_query = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.buffer_variable.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.program_input.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.program_output.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.shader_storage_block.referenced_by.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.uniform.random.* = FAIL
+1442 OPENGL : dEQP-GLES31.functional.program_interface_query.uniform_block.referenced_by.* = FAIL
+
+// An NVIDIA bug seems to occur when sending GL commands in a certain order to the driver
+2432 NVIDIA OPENGL : dEQP-GLES31.functional.vertex_attribute_binding.usage.mixed_usage.mixed_api_change_binding_point = SKIP
+
+// OpenGL/D3D11 Failing Tests
+1442 OPENGL : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
+1442 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
+
+// OpenGL/D3D11/Vulkan Failing Tests
+1442 : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.atomic_counter_dispatch_100_calls_1k_invocations = FAIL
+
+// Waiting for Program pipeline functionality
+3570 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL
+3570 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL
+3570 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL
+3570 : dEQP-GLES31.functional.debug.object_labels.program_pipeline = FAIL
+3570 : dEQP-GLES31.functional.separate_shader.* = FAIL
+
+// The following passes with Vulkan (with warning), but fails otherwise.  We'll keep the file simple by expecting it to fail.
+2324 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.compute.program_not_active = FAIL
+2324 : dEQP-GLES31.functional.debug.negative_coverage.log.compute.program_not_active = FAIL
+2324 : dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.program_not_active = FAIL
+2324 : dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.draw_range_elements = FAIL
+2324 : dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.draw_range_elements_incomplete_primitive = FAIL
+
+// These tests are failing because of compile errors with SSBOs in compute shaders.
+1951 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.compute.exceed_shared_memory_size_limit = FAIL
+1951 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.exceed_shared_memory_size_limit = FAIL
+1951 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.log.compute.exceed_shared_memory_size_limit = FAIL
+
+1442 D3D11 : dEQP-GLES31.functional.stencil_texturing.* = SKIP
+// TODO(xinghua.cao@intel.com): FAIL expectation instead of SKIP should be sufficient for OpenGL, but the
+// test expectations parser doesn't support having FAIL for GL and SKIP for D3D with the same test filter.
+
+1729 D3D11 : dEQP-GLES31.functional.atomic_counter.* = SKIP
+1951 D3D11 : dEQP-GLES31.functional.layout_binding.ssbo.* = SKIP
+1951 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.ssbo.* = SKIP
+1442 D3D11 : dEQP-GLES31.functional.program_interface_query.* = SKIP
+1442 D3D11 : dEQP-GLES31.functional.synchronization.* = SKIP
+1442 D3D11 : dEQP-GLES31.functional.layout_binding.image.* = SKIP
+// This case is skipped since it uses atomic counter builtin functions which haven't been implemented.
+1729 D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = SKIP
+
+// Vulkan Android failures
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth = FAIL
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy = FAIL
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx = FAIL
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy = FAIL
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples = FAIL
+4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy = FAIL
+4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx = FAIL
+
+// Debug failures that occur on Android:
+3590 VULKAN ANDROID : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterf = FAIL
+3590 VULKAN ANDROID : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterfv = FAIL
+
+// Passing on recent drivers:
+3726 VULKAN ANDROID : dEQP-GLES31.functional.ssbo.layout.* = FAIL
+3726 VULKAN ANDROID : dEQP-GLES31.functional.atomic_counter.* = FAIL
+3726 VULKAN ANDROID : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*atomic_counter* = FAIL
+3726 VULKAN ANDROID : dEQP-GLES31.functional.compute.basic.atomic_counter* = FAIL
+
+// Validation error on SPIR-V (but only on Android, possibly related to issue 2703)
+3882 VULKAN ANDROID : dEQP-GLES31.functional.uniform_location.nested_array.*sampler* = FAIL
+
+// Arrays of opaque types as function parameters (possibly related to issue 3882)
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_literal_vertex = FAIL
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_literal_fragment = FAIL
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_literal_compute = FAIL
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_expression_vertex = FAIL
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_expression_fragment = FAIL
+2703 VULKAN ANDROID : dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_expression_compute = FAIL
+
+// General Vulkan failures
+
+// Front-end query bugs:
+3596 VULKAN : dEQP-GLES31.functional.program_interface_query.shader_storage_block.buffer_data_size.* = FAIL
+
+// Shader support:
+3565 VULKAN : dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_* = SKIP
+
+// SSBO synchronization:
+4097 VULKAN PIXEL2ORXL : dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite = FAIL
+
+// Block name matching failure:
+3459 VULKAN : dEQP-GLES31.functional.shaders.linkage.es31.shader_storage_block.mismatch_with_and_without_instance_name = FAIL
+
+// Tessellation geometry interaction:
+3572 VULKAN : dEQP-GLES31.functional.tessellation_geometry_interaction.* = FAIL
+
+// Framebuffer without attachments:
+3579 ANDROID VULKAN : dEQP-GLES31.functional.fbo.no_attachments.* = SKIP
+
+// Debug:
+3590 VULKAN : dEQP-GLES31.functional.debug.negative_coverage.*exceed_shared_memory_size_limit = FAIL
+
+// Stencil textures (some missing support for base level):
+3683 VULKAN PIXEL2ORXL : dEQP-GLES31.functional.stencil_texturing.format.* = FAIL
+3683 VULKAN PIXEL2ORXL : dEQP-GLES31.functional.stencil_texturing.misc.compare_mode_effect = FAIL
+
+// Need to support non-color when staging image updates
+4080 ANDROID VULKAN : dEQP-GLES31.functional.stencil_texturing.misc.base_level = SKIP
+
+// Multisampled textures:
+3565 VULKAN : dEQP-GLES31.functional.texture.multisample.* = SKIP
+3565 VULKAN : dEQP-GLES31.functional.state_query.texture*multisample.* = SKIP
+
+// Vulkan creates the image view with the same format as the texture.
+3885 VULKAN : dEQP-GLES31.functional.image_load_store.*.format_reinterpret.* = FAIL
+
+// Cannot create 2D (array) view of 3D texture.
+3886 VULKAN : dEQP-GLES31.functional.image_load_store.3d.*layer = FAIL
+
+// Inactive SSBOs with flexible array member (about 20% of these tests are affected):
+3714 VULKAN : dEQP-GLES31.functional.ssbo.layout.random.* = FAIL
+
+// OpenGL ES 3.1 conformance failures
+4098 SWIFTSHADER : dEQP-GLES31.functional.compute.basic.write_multiple_unsized_arr_multiple_groups = FAIL
+4098 SWIFTSHADER : dEQP-GLES31.functional.compute.basic.write_multiple_unsized_arr_single_invocation = FAIL
+
+4099 SWIFTSHADER : dEQP-GLES31.functional.draw_indirect.draw_elements_indirect.base_vertex.index_neg_* = FAIL
+
+4100 SWIFTSHADER : dEQP-GLES31.functional.draw_indirect.random.30 = FAIL
+4100 SWIFTSHADER : dEQP-GLES31.functional.draw_indirect.random.39 = FAIL
+
+4101 SWIFTSHADER : dEQP-GLES31.functional.multisample.default_framebuffer.sample_position = FAIL
+
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_height_getfloat = FAIL
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_height_getinteger = FAIL
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_height_getinteger64 = FAIL
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_width_getfloat = FAIL
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_width_getinteger = FAIL
+4102 SWIFTSHADER : dEQP-GLES31.functional.state_query.integer.max_framebuffer_width_getinteger64 = FAIL
+
+4103 SWIFTSHADER : dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample.* = FAIL
+
+4104 SWIFTSHADER : dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_float = FAIL
+4104 SWIFTSHADER : dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_integer = FAIL
+4104 SWIFTSHADER : dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_float = FAIL
+4104 SWIFTSHADER : dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_integer = FAIL
+
+4105 SWIFTSHADER : dEQP-GLES31.functional.stencil_texturing.format.depth24_stencil8_cube = FAIL
+4105 SWIFTSHADER : dEQP-GLES31.functional.stencil_texturing.format.depth32f_stencil8_cube = FAIL
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations
new file mode 100644
index 0000000..b58c083
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations
@@ -0,0 +1,597 @@
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// Don't run these tests for faster turnover
+1101 : dEQP-GLES3.functional.flush_finish.* = SKIP
+
+// TODO(jmadill): Figure out why these fail on the bots, but not locally.
+1108 WIN D3D11 : dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_struct_array_fragment = FAIL
+1094 WIN D3D11 : dEQP-GLES3.functional.shaders.invariance.highp.loop_2 = FAIL
+1094 WIN D3D11 : dEQP-GLES3.functional.shaders.invariance.mediump.loop_2 = FAIL
+
+// We can't support distinct texture sizes in D3D11.
+1097 WIN D3D11 : dEQP-GLES3.functional.fbo.completeness.size.distinct = FAIL
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Temporary entries: they should be removed once the bugs are fixed.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// Failures related to using a depth/stencil enabled backbuffer on Windows / NVIDIA.
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_1 = FAIL
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_1 = FAIL
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_1 = FAIL
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.render_all = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.render_depth_stencil = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.bind_depth_stencil = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.draw_framebuffer_all = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.read_framebuffer_all = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.fbo.invalidate.default.bind_all = SKIP
+2428 D3D11 NVIDIA : dEQP-GLES3.functional.polygon_offset.default_render_with_units = SKIP
+
+// Tests were being hidden by flakiness (anglebug.com/3271)
+3329 D3D11 NVIDIA : dEQP-GLES3.functional.transform_feedback.interpolation.flat.* = FAIL
+3329 D3D11 NVIDIA : dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.triangles.* = FAIL
+3329 D3D11 NVIDIA : dEQP-GLES3.functional.transform_feedback.basic_types.separate.triangles.* = FAIL
+
+// Missing the SampleCmp instruction in vertex shaders.
+1435 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_vertex = FAIL
+1435 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.sampler2dshadow_vertex = FAIL
+1435 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_vertex = FAIL
+1435 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_vertex = FAIL
+
+// SampleCmp is missing gradient/offset parameters in HLSL.
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2dshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2dshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2darrayshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2darrayshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_fragment = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler2dshadow_vertex = FAIL
+1436 WIN D3D11 : dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler2dshadow_fragment = FAIL
+
+// DrawBuffers test failing on D3D11.
+3298 WIN D3D11 : dEQP-GLES3.functional.shaders.fragdata.draw_buffers = FAIL
+
+// TODO(jmadill, cwallez): triage the failures below into permanent and temporary failures
+
+// Quadro P400
+// TODO(jmadill): Narrow to P400 device only: 0x1CB3.
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.functions.control_flow.return_in_nested_loop_fragment = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.functions.control_flow.return_in_nested_loop_vertex = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.linear_nearest = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.nearest_nearest = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.linear_nearest = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.nearest_nearest = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.cube.min_lod.linear_nearest = FAIL
+2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.cube.min_lod.nearest_nearest = FAIL
+
+// Flaky on Win7 D3D11 NVIDIA
+4070 WIN7 D3D11 NVIDIA : dEQP-GLES3.functional.rasterization.flatshading.triangles = FAIL
+
+// Vertex attribute aliasing is not supported on D3D
+3467 D3D9 : dEQP-GLES3.functional.attribute_location.bind_aliasing.cond* = FAIL
+3467 D3D9 : dEQP-GLES3.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+3467 D3D11 : dEQP-GLES3.functional.attribute_location.bind_aliasing.cond* = FAIL
+3467 D3D11 : dEQP-GLES3.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+
+// Windows and Linux failures
+1095 LINUX : dEQP-GLES3.functional.texture.mipmap.2d.projected.* = FAIL
+
+// Windows only failure
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_* = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.depth_stencil.stencil_ops.* = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.depth_stencil.write_mask.* = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.depth_stencil.random.* = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.add_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.add_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_constant_alpha = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.random.* = FAIL
+1096 WIN D3D11 : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.* = FAIL
+1101 WIN D3D11 : dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units = FAIL
+1101 WIN D3D11 : dEQP-GLES3.functional.polygon_offset.fixed24_render_with_units = FAIL
+1101 WIN D3D11 : dEQP-GLES3.functional.lifetime.attach.deleted_input.buffer_vertex_array = FAIL
+
+// Basic line transform feedback tests flaky on Windows.
+2676 WIN D3D11 : dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.* = FAIL
+2676 WIN D3D11 : dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.* = FAIL
+
+// Very small threshold issue. Could upstream a higher tolerance to dEQP.
+2323 WIN D3D11 : dEQP-GLES3.functional.texture.units.2_units.only_cube.7 = FAIL
+
+// Blit related failures on D3D11
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_x = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_y = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_x = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_y = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_dst_x_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_dst_y_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_src_dst_x_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_src_dst_y_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_src_x_linear = FAIL
+3297 WIN D3D11 : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_src_y_linear = FAIL
+
+// Windows AMD specific failures
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_scale = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_stencil_only = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.r11f_g11f_b10f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rg32f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rg16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.r32f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.r16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rgb16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rg8 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rgb10_a2 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rgba16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.r8 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba32f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.r11f_g11f_b10f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg32f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.r32f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.r16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgb16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg8 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.r8 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgb10_a2 = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgb16f = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.filtering.cube.formats.rgb10_a2_nearest_mipmap_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.filtering.cube.formats.rgb565_nearest_mipmap_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.filtering.cube.formats.rgba16f_nearest_mipmap_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.nearest_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.linear_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.2d.max_lod.nearest_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.2d.max_lod.linear_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.nearest_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.linear_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.3d.max_lod.nearest_nearest = FAIL
+1633 WIN D3D11 AMD : dEQP-GLES3.functional.texture.mipmap.3d.max_lod.linear_nearest = FAIL
+
+// D3D11 Intel specific
+
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.only_cube.6 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.8 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.only_3d.8 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.mixed.0 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.mixed.8 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.2_units.mixed.9 = FAIL
+1349 D3D11 INTEL : dEQP-GLES3.functional.texture.units.4_units.only_3d.3 = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.nearest_nearest = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.linear_nearest = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.nearest_nearest = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.linear_nearest = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines = FAIL
+2349 D3D11 INTEL : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines = FAIL
+
+// Failing Tests on Windows and Mac on Intel HD 630
+2137 WIN INTEL : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.* = FAIL
+2137 MAC INTEL : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.* = FAIL
+
+// Linux only failures
+
+// UBO tests trigger crashes when getting the program info log, skip them until this is fixed.
+1323 LINUX OPENGL : dEQP-GLES3.functional.ubo.* = SKIP
+
+1323 LINUX OPENGL : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f = FAIL
+1323 LINUX OPENGL : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8 = FAIL
+1323 LINUX OPENGL : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f = FAIL
+1323 LINUX OPENGL : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8 = FAIL
+1323 LINUX OPENGL : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points = FAIL
+
+// While loops with 'continue' seem flaky on Linux. (Possibly all GL renderers)
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_constant_iterations.mixed_break_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_uniform_iterations.mixed_break_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.mixed_break_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_constant_iterations.mixed_break_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_uniform_iterations.mixed_break_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.conditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.conditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.unconditional_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.unconditional_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.only_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.only_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.double_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.double_continue_fragment = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.mixed_break_continue_vertex = FAIL
+1324 LINUX OPENGL : dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.mixed_break_continue_fragment = FAIL
+
+// Polygon offset failures
+3304 LINUX OPENGL : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL
+3304 LINUX OPENGL : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL
+
+// Flaky test
+3305 LINUX OPENGL : dEQP-GLES3.functional.shaders.builtin_functions.common.uintbitstofloat.uint_highp_vertex = FAIL
+
+// Linux Intel specific
+2349 LINUX OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.default_framebuffer* = FAIL
+
+// Mac failures (overbroad suppresions)
+3466 MAC OPENGL : dEQP-GLES3.functional.attribute_location.bind_aliasing.cond* = SKIP
+3466 MAC OPENGL : dEQP-GLES3.functional.attribute_location.bind_aliasing.max_cond* = SKIP
+2137 MAC OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_reverse_* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.implementation_limits.compressed_texture_formats = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.implementation_limits.num_compressed_texture_formats = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.primitive_restart.* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.linkage.varying.rules.vertex_declare_fragment_use = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.function_parameter_hides_struct_type_fragment = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.function_parameter_hides_struct_type_vertex = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.local_int_variable_hides_struct_type_fragment = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.local_int_variable_hides_struct_type_vertex = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.local_struct_variable_hides_struct_type_fragment = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.scoping.valid.local_struct_variable_hides_struct_type_vertex = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.state_query.integers.compressed_texture_formats_getfloat = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.state_query.integers.compressed_texture_formats_getinteger = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.state_query.integers.compressed_texture_formats_getinteger64 = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.dither.disabled.* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.arrays.complex_expression.and_short_circuits_* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.arrays.complex_expression.or_short_circuits_* = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.fragdata.valid_static_index = FAIL
+2137 MAC OPENGL : dEQP-GLES3.functional.shaders.loops.short_circuit.* = FAIL
+3317 MAC OPENGL : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_linear = FAIL
+
+// ETC compressed formats not supported
+3853 MAC OPENGL : dEQP-GLES3.functional.negative_api.texture.compressedtexsubimage* = FAIL
+3853 MAC OPENGL : dEQP-GLES3.functional.negative_api.texture.generatemipmap = FAIL
+
+// Mac AMD failures
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.clipping.point.wide_point_clip = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.fbo.blit.rect.out_of_bounds_nearest = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.shaders.builtin_functions.precision.tanh.highp_* = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.texture.mipmap.2d.projected.* = FAIL
+2137 MAC OPENGL AMD : dEQP-GLES3.functional.transform_feedback.* = FAIL
+
+3317 MAC OPENGL AMD : dEQP-GLES3.functional.shaders.builtin_functions.precision.ceil.* = FAIL
+3317 MAC OPENGL AMD : dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.isampler3d_vertex = FAIL
+3317 MAC OPENGL AMD : dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.usampler3d_vertex = FAIL
+
+// Mac Intel crashes
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.discard.function_static_loop_never = SKIP
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.discard.dynamic_loop_never = SKIP
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.discard.static_loop_never = SKIP
+
+// Mac Intel failures
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.color_clear.* = FAIL
+// All the out of bounds variants fail.
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_dst_y = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_y = FAIL
+// Fails for all integer formats
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.completeness.attachment_combinations.none_rbo_none_none = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.completeness.attachment_combinations.none_tex_none_none = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.polygon_offset.default_render_with_units = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.polygon_offset.fixed24_render_with_units = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_1 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_3 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_1 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_3 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_1 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_3 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2d_fragment = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2d_vertex  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.usampler3d_fragment  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.usampler3d_fragment  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.usamplercube_fragment  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.usamplercube_vertex  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturelod.usamplercube_fragment  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texturelod.usamplercube_vertex  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.usampler3d_fragment  = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.usampler3d_fragment  = FAIL
+// Fails the integer npot cases = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.format.sized.cube.* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.basic_copyteximage2d.cube_alpha = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.basic_copyteximage2d.cube_luminance = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.basic_copyteximage2d.cube_luminance_alpha = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.basic_copyteximage2d.cube_rgb = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.basic_copyteximage2d.cube_rgba = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.random_teximage2d.2d_5 = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.teximage3d_* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.specification.texsubimage3d_* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.ubo.* = FAIL
+2137 MAC OPENGL INTEL : dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.* = FAIL
+
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_x = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_y = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.filtering.cube.combinations.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.mipmap.cube.max_level.linear_nearest = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.vertex.2d_array.filtering.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.vertex.2d.filtering.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_* = FAIL
+3317 MAC OPENGL INTEL : dEQP-GLES3.functional.texture.vertex.cube.filtering.linear_nearest_* = FAIL
+
+3531 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.invalidate.format.rgb8 = FAIL
+3531 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgb16f = FAIL
+3531 MAC OPENGL INTEL : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgb8 = FAIL
+
+// Android only failures
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.red_half_float_oes = FAIL
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rg_half_float_oes = FAIL
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth_stencil_unsigned_int_24_8 = FAIL
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_stencil_unsigned_int_24_8 = FAIL
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short = FAIL
+1487 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_int = FAIL
+1964 ANDROID GLES : dEQP-GLES3.functional.occlusion_query.* = FAIL
+1962 ANDROID GLES : dEQP-GLES3.functional.shaders.preprocessor.conditional_inclusion.basic_2_fragment = FAIL
+1962 ANDROID GLES : dEQP-GLES3.functional.shaders.preprocessor.conditional_inclusion.basic_2_vertex = FAIL
+1962 ANDROID GLES : dEQP-GLES3.functional.shaders.preprocessor.conditional_inclusion.defined_macro_undef_fragment = FAIL
+1962 ANDROID GLES : dEQP-GLES3.functional.shaders.preprocessor.conditional_inclusion.defined_macro_undef_vertex = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.conditional_return_always_fragment = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.conditional_return_always_vertex = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.output_write_always_fragment = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.output_write_always_vertex = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.output_write_in_func_always_fragment = FAIL
+1963 ANDROID GLES : dEQP-GLES3.functional.shaders.return.output_write_in_func_always_vertex = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.2d.generate.a8_* = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.2d.generate.l8_* = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.2d.generate.la88_* = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.cube.generate.a8_* = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.cube.generate.l8_* = FAIL
+1529 ANDROID GLES : dEQP-GLES3.functional.texture.mipmap.cube.generate.la88_* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.basic_types.separate.* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.interpolation.* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.point_size.* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.position.* = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.5 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.8 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.10 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.points.6 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.points.7 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.2 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.separate.lines.4 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.separate.lines.6 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.separate.lines.8 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.separate.points.4 = FAIL
+1531 ANDROID GLES : dEQP-GLES3.functional.transform_feedback.random.separate.triangles.4 = FAIL
+2629 ANDROID GLES : dEQP-GLES3.functional.shaders.struct.local.array_member_equality_fragment = SKIP
+2629 ANDROID GLES : dEQP-GLES3.functional.shaders.struct.local.array_member_equality_vertex = SKIP
+2627 ANDROID GLES : dEQP-GLES3.functional.shaders.arrays.complex_expression.and_short_circuits_* = FAIL
+2627 ANDROID GLES : dEQP-GLES3.functional.shaders.arrays.complex_expression.or_short_circuits_* = FAIL
+2628 ANDROID GLES : dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_fragment = FAIL
+2628 ANDROID GLES : dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_with_index_with_side_effects_fragment = FAIL
+2628 ANDROID GLES : dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_out_parameter_fragment = FAIL
+2627 ANDROID GLES : dEQP-GLES3.functional.shaders.loops.short_circuit.* = FAIL
+
+2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.red_unsigned_byte = FAIL
+2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.rg_unsigned_byte = FAIL
+2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.red_unsigned_byte = FAIL
+2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.rg_unsigned_byte = FAIL
+
+// Nexus 5x failures
+3308 NEXUS5X GLES : dEQP-GLES3.functional.attribute_location.bind_aliasing.cond* = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.attribute_location.bind_aliasing.max_cond* = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.polygon_offset.default_result_depth_clamp = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.polygon_offset.fixed24_result_depth_clamp = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3 = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.8 = FAIL
+3308 NEXUS5X GLES : dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.10 = FAIL
+2322 NEXUS5X GLES : dEQP-GLES3.functional.shaders.metamorphic.* = SKIP
+
+// Seems to fail on all desktop GL
+2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8 = FAIL
+2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_out_of_bounds_blit_to_default = FAIL
+2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_scale_blit_to_default = FAIL
+2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_nearest_scale_blit_to_default = FAIL
+
+// Fails on Windows + Linux.
+2222 OPENGL NVIDIA : dEQP-GLES3.functional.fbo.completeness.samples.rbo2_rbo2_rbo0 = FAIL
+
+// General Vulkan failures
+
+// Tests failing due to the "flat" qualifier in the shader:
+3677 VULKAN : dEQP-GLES3.functional.fragment_out.basic.int.* = FAIL
+3677 VULKAN : dEQP-GLES3.functional.fragment_out.basic.uint.* = FAIL
+3677 VULKAN : dEQP-GLES3.functional.fragment_out.array.int* = FAIL
+3677 VULKAN : dEQP-GLES3.functional.fragment_out.array.uint* = FAIL
+3677 VULKAN : dEQP-GLES3.functional.fragment_out.random.* = FAIL
+
+// NVIDIA Depth/Stencil textures:
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f = FAIL
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8 = FAIL
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f = FAIL
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8 = FAIL
+
+// Polygon offset:
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL
+3970 VULKAN NVIDIA : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL
+
+// Flat shading:
+3430 VULKAN : dEQP-GLES3.functional.rasterization.flatshading.* = FAIL
+
+// Misc unimplemented:
+
+// Failures on newer NVIDIA drivers (411.95) and passes on older drivers (388.16).  Passes on 418.12 on Linux.
+2976 VULKAN NVIDIA : dEQP-GLES3.functional.shaders.invariance.* = FAIL
+// Fails on 431.02 NVIDIA driver
+3748 VULKAN WIN NVIDIA : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.* = FAIL
+
+// Android Vulkan failures
+3306 ANDROID VULKAN : dEQP-GLES3.functional.polygon_offset.* = FAIL
+2830 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines = FAIL
+2830 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines = FAIL
+2830 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.primitives.line* = FAIL
+2808 ANDROID VULKAN : dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_w = FAIL
+
+// Pixel driver issues
+4024 PIXEL2ORXL VULKAN : dEQP-GLES3.functional.draw.random.5 = SKIP
+4024 PIXEL2ORXL VULKAN : dEQP-GLES3.functional.draw.random.49 = SKIP
+4024 PIXEL2ORXL VULKAN : dEQP-GLES3.functional.draw.random.96 = FAIL
+
+// Fixed in later driver versions.
+2727 VULKAN ANDROID : dEQP-GLES3.functional.shaders.builtin_variable.pointcoord = FAIL
+
+//  New or broken formats in ES 3.0, may be it relates to VK_IMAGE_USAGE_STORAGE_BIT
+3816 VULKAN PIXEL2ORXL : dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16* = FAIL
+3816 VULKAN PIXEL2ORXL : dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16* = FAIL
+3816 VULKAN PIXEL2ORXL : dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32* = FAIL
+
+// Fails only with SwiftShader:
+
+// These only fail for a 565 config
+4016 SWIFTSHADER : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.27 = FAIL
+4016 SWIFTSHADER : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.80 = FAIL
+
+// These only fail on Android
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_fragment = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_fragment = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_fragment = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both = FAIL
+4045 SWIFTSHADER : dEQP-GLES3.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_fragment = FAIL
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations
new file mode 100644
index 0000000..2146add
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations
@@ -0,0 +1,33 @@
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// Depth/stencil related failures.
+3457 VULKAN : KHR-GLES2.core.internalformat.texture2d.depth_stencil_unsigned_int_24_8_depth_stencil = FAIL
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations
new file mode 100644
index 0000000..f8c825e
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations
@@ -0,0 +1,134 @@
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// For now we only log Vulkan test expectations. More back-ends can follow as we need them.
+
+// Android Vulkan expectations
+
+// General Vulkan expectations
+
+// Limits:
+// GL_MIN/MAX_PROGRAM_TEXTURE_GATHER_OFFSET not set.
+3605 VULKAN : KHR-GLES31.core.texture_gather.* = FAIL
+
+// Dispatch indirect:
+3601 VULKAN : KHR-GLES31.core.compute_shader* = SKIP
+
+// Multisampled textures:
+3565 VULKAN : KHR-GLES31.core.texture_storage_multisample.* = SKIP
+
+// 2D array and 3D textures for compute shaders:
+3810 VULKAN : KHR-GLES31.core.layout_binding.sampler2DArray_layout_binding_texture_ComputeShader = SKIP
+3810 VULKAN : KHR-GLES31.core.layout_binding.sampler3D_layout_binding_texture_ComputeShader = SKIP
+
+// Program Pipeline Objects:
+3570 VULKAN : KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2 = FAIL
+3570 VULKAN : KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-dispatches = FAIL
+
+// Separate shader objects:
+3570 VULKAN : KHR-GLES31.core.sepshaderobjs* = FAIL
+
+// Shader support:
+3569 : KHR-GLES31.core.shader_integer_mix.* = FAIL
+3569 : KHR-GLES31.core.shader_image* = SKIP
+3569 : KHR-GLES31.core.shader_macros* = FAIL
+3569 : KHR-GLES31.core.shader_bitfield_operation.frexp.* = SKIP
+3569 : KHR-GLES31.core.shader_bitfield_operation.uaddCarry.* = SKIP
+3569 : KHR-GLES31.core.shader_bitfield_operation.usubBorrow.* = SKIP
+3569 : KHR-GLES31.core.shader_bitfield_operation.umulExtended.* = SKIP
+3569 : KHR-GLES31.core.shader_bitfield_operation.imulExtended.* = SKIP
+
+// Trigger Vulkan validation errors:
+4145 VULKAN : KHR-GLES31.core.vertex_attrib_binding.basic-* = FAIL
+
+// Crashes in libnvidia-glvkspirv.so, fixed in newer drivers
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-matC* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-matC* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-matC* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-struct* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-struct* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-struct* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-*-matR* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-vs-*-matR* = SKIP
+4128 VULKAN NVIDIA : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-*-matR* = SKIP
+
+// Bug with binding the zero buffer and glBindBufferRange:
+4147 : KHR-GLES31.core.shader_storage_buffer_object.basic-binding = FAIL
+
+// Error with detecting some atomic counter buffer uses:
+4150 : KHR-GLES31.core.shader_storage_buffer_object.basic-atomic-case3-cs = FAIL
+4150 : KHR-GLES31.core.shader_storage_buffer_object.basic-atomic-case3-vsfs = FAIL
+
+// Unimplemented glValidateCreateShaderProgramv:
+4146 : KHR-GLES31.core.shader_storage_buffer_object.basic-syntaxSSO = FAIL
+4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-bindingUpdate = FAIL
+4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-largeStrideAndOffsetsNewAndLegacyAPI = FAIL
+
+// Draw indirect:
+3564 VULKAN : KHR-GLES31.core.draw_indirect.* = SKIP
+
+// Explicit uniform locations: triggers ASSERT.
+4132 : KHR-GLES31.core.explicit_uniform_location.* = SKIP
+
+// Program interface query.
+3596 VULKAN : KHR-GLES31.core.program_interface_query.* = FAIL
+
+// Framebuffer without attachments:
+3579 VULKAN : KHR-GLES31.core.framebuffer_no_attachments.api = FAIL
+
+// Arrays-of-arrays as vertex inputs:
+4148 : KHR-GLES31.core.arrays_of_arrays.InteractionInterfaceArrays2 = FAIL
+
+// Blend equations:
+3586 VULKAN : KHR-GLES31.core.blend_equation_advanced.* = SKIP
+
+// Storage image front-end crash when unbinding images (given texture 0)
+4124 VULKAN : KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_ComputeShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.block_layout_binding_block_ComputeShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.buffer_layout_binding_atomicAdd_ComputeShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.atomic_uint_layout_binding_atomic_ComputeShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_ComputeShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_FragmentShader = SKIP
+4124 VULKAN : KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_VertexShader = SKIP
+
+// Passing on recent drivers:
+3726 VULKAN ANDROID : KHR-GLES31.core.shader_atomic_counters.* = FAIL
+3726 VULKAN ANDROID : KHR-GLES31.core.shader_atomic_counters.advanced-usage-* = SKIP
+
+// Crashes on Android
+3520 VULKAN ANDROID : KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength* = SKIP
+
+// OpenGL ES 3.1 conformance failures
+4107 SWIFTSHADER : KHR-GLES31.core.shader_storage_buffer_object.advanced-switchBuffers-vs = FAIL
+
+4106 SWIFTSHADER : KHR-GLES31.core.layout_binding.sampler*_layout_binding_texture_* = FAIL
+
+4108 SWIFTSHADER : KHR-GLES31.core.shader_image_size.*-nonMS-* = SKIP
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations
new file mode 100644
index 0000000..6293f81
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations
@@ -0,0 +1,181 @@
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a list of defective dEQP conformance tests. The expected
+// format is:
+//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
+//
+// MODIFIERS can be a combination of the below list, combined with a logical AND:
+//  WIN XP VISTA WIN7 WIN8 WIN10
+//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
+//  LINUX CHROMEOS ANDROID
+//  NVIDIA AMD INTEL
+//  DEBUG RELEASE
+//  D3D9 D3D11 OPENGL GLES VULKAN
+//  NEXUS5X PIXEL2ORXL
+//  QUADROP400
+//
+//
+// TEST_NAME can be a specific test name, or have a '*' in the end, which
+// indicates a prefix matching.
+//
+// Examples:
+// fails on both windows and mac (crash)
+//  91530 WIN : context_lost_restored = SKIP
+//  91530 MAC : context_lost_restored = SKIP
+// fails on windows using NVIDIA GPUs
+//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
+// fails on Nexus5X with GLES backend (hangs)
+//  91531 NEXUS5X GLES : conformance_more_* = SKIP
+
+// For now we only log Vulkan test expectations. More back-ends can follow as we need them.
+
+// Depth/stencil related failures due to Vulkan driver bugs.
+3683 VULKAN ANDROID : KHR-GLES3.packed_depth_stencil.*.depth24_stencil8 = FAIL
+3683 VULKAN ANDROID : KHR-GLES3.packed_depth_stencil.*.depth32f_stencil8 = FAIL
+
+// CopyTexImage conversion failing due to Vulkan validation error re: UINT/SINT-descriptor-set issue.
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posz = FAIL
+
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posz = FAIL
+
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_texture2d = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negz = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posx = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posy = FAIL
+3817 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posz = FAIL
+
+// glCopyTexImage from 3D textures is failing and getting the following Vulkan Validation errors:
+//
+//  ImageView must not be a 2D or 2DArray view of a 3D image. The Vulkan spec states:
+//  imageView must not be 2D or 2D array image view created from a 3D image
+//
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_texture2d = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negx = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negy = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negz = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posx = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posy = FAIL
+3836 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posz = FAIL
+
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.r8 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg8 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg8i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg8ui = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgb8 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba8 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba8i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba8ui = FAIL
+
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg16i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg16ui = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg16f = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgb16f = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba16i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba16ui = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba16f = FAIL
+
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg32i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg32ui = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rg32f = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba32i = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba32ui = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba32f = FAIL
+
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgb = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgb565 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgb5_a1 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.srgb8_alpha8 = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba = FAIL
+3836 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.rgba4 = FAIL
+
+
+// Fails only with SwiftShader:
+
+// These only fail on Android
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_dynamic_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_dynamic_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_dynamic_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_dynamic_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_dynamic_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_dynamic_loop_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_dynamic_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_dynamic_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_static_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat2x4_static_write_static_loop_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_dynamic_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_dynamic_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_dynamic_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_dynamic_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_dynamic_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_dynamic_loop_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_dynamic_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_dynamic_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_static_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat3x4_static_write_static_loop_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_dynamic_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_dynamic_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_loop_write_static_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_loop_write_static_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_dynamic_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_dynamic_loop_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_dynamic_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_dynamic_read_vertex = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_static_loop_read_fragment = FAIL
+4019 SWIFTSHADER : KHR-GLES3.shaders.indexing.matrix_subscript.mat4_static_write_static_loop_read_vertex = FAIL
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderConstExprTests_override.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderConstExprTests_override.cpp
new file mode 100644
index 0000000..21fb6b6
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderConstExprTests_override.cpp
@@ -0,0 +1,643 @@
+/*-------------------------------------------------------------------------
+ * OpenGL Conformance Test Suite
+ * -----------------------------
+ *
+ * Copyright (c) 2017 The Khronos Group Inc.
+ *
+ * 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  glcShaderConstExprTests.cpp
+ * \brief Declares shader constant expressions tests.
+ */ /*-------------------------------------------------------------------*/
+
+#include <map>
+#include "deMath.h"
+#include "deSharedPtr.hpp"
+#include "glcShaderConstExprTests.hpp"
+#include "glsShaderExecUtil.hpp"
+#include "gluContextInfo.hpp"
+#include "gluShaderUtil.hpp"
+#include "tcuFloat.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTestLog.hpp"
+
+using namespace deqp::gls::ShaderExecUtil;
+
+namespace glcts
+{
+
+namespace ShaderConstExpr
+{
+
+struct TestParams
+{
+    const char *name;
+    const char *expression;
+
+    glu::DataType inType;
+    int minComponents;
+    int maxComponents;
+
+    glu::DataType outType;
+    union
+    {
+        float outputFloat;
+        int outputInt;
+    };
+};
+
+struct ShaderExecutorParams
+{
+    deqp::Context *context;
+
+    std::string caseName;
+    std::string source;
+
+    glu::DataType outType;
+    union
+    {
+        float outputFloat;
+        int outputInt;
+    };
+};
+
+template <typename OutputType>
+class ExecutorTestCase : public deqp::TestCase
+{
+  public:
+    ExecutorTestCase(deqp::Context &context,
+                     const char *name,
+                     glu::ShaderType shaderType,
+                     const ShaderSpec &shaderSpec,
+                     OutputType expectedOutput);
+    virtual ~ExecutorTestCase(void);
+    virtual tcu::TestNode::IterateResult iterate(void);
+
+  protected:
+    void validateOutput(de::SharedPtr<ShaderExecutor> executor);
+
+    glu::ShaderType m_shaderType;
+    ShaderSpec m_shaderSpec;
+    OutputType m_expectedOutput;
+};
+
+template <typename OutputType>
+ExecutorTestCase<OutputType>::ExecutorTestCase(deqp::Context &context,
+                                               const char *name,
+                                               glu::ShaderType shaderType,
+                                               const ShaderSpec &shaderSpec,
+                                               OutputType expectedOutput)
+    : deqp::TestCase(context, name, ""),
+      m_shaderType(shaderType),
+      m_shaderSpec(shaderSpec),
+      m_expectedOutput(expectedOutput)
+{}
+
+template <typename OutputType>
+ExecutorTestCase<OutputType>::~ExecutorTestCase(void)
+{}
+
+template <>
+void ExecutorTestCase<float>::validateOutput(de::SharedPtr<ShaderExecutor> executor)
+{
+    float result        = 0.0f;
+    void *const outputs = &result;
+    executor->execute(1, DE_NULL, &outputs);
+
+    const float epsilon = 0.01f;
+    if (de::abs(m_expectedOutput - result) > epsilon)
+    {
+        m_context.getTestContext().getLog()
+            << tcu::TestLog::Message << "Expected: " << m_expectedOutput << " ("
+            << tcu::toHex(tcu::Float32(m_expectedOutput).bits())
+            << ") but constant expresion returned: " << result << " ("
+            << tcu::toHex(tcu::Float32(result).bits()) << "), used " << epsilon
+            << " epsilon for comparison" << tcu::TestLog::EndMessage;
+        m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
+        return;
+    }
+
+    m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+    return;
+}
+
+template <>
+void ExecutorTestCase<int>::validateOutput(de::SharedPtr<ShaderExecutor> executor)
+{
+    int result          = 0;
+    void *const outputs = &result;
+    executor->execute(1, DE_NULL, &outputs);
+
+    if (result == m_expectedOutput)
+    {
+        m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+        return;
+    }
+
+    m_context.getTestContext().getLog()
+        << tcu::TestLog::Message << "Expected: " << m_expectedOutput
+        << " but constant expresion returned: " << result << tcu::TestLog::EndMessage;
+    m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
+}
+
+template <typename OutputType>
+tcu::TestNode::IterateResult ExecutorTestCase<OutputType>::iterate(void)
+{
+    de::SharedPtr<ShaderExecutor> executor(
+        createExecutor(m_context.getRenderContext(), m_shaderType, m_shaderSpec));
+
+    DE_ASSERT(executor.get());
+
+    executor->log(m_context.getTestContext().getLog());
+
+    try
+    {
+        if (!executor->isOk())
+            TCU_FAIL("Compilation failed");
+
+        executor->useProgram();
+
+        validateOutput(executor);
+    }
+    catch (const tcu::NotSupportedError &e)
+    {
+        m_testCtx.getLog() << tcu::TestLog::Message << e.what() << tcu::TestLog::EndMessage;
+        m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED, e.getMessage());
+    }
+    catch (const tcu::TestError &e)
+    {
+        m_testCtx.getLog() << tcu::TestLog::Message << e.what() << tcu::TestLog::EndMessage;
+        m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, e.getMessage());
+    }
+
+    return tcu::TestNode::STOP;
+}
+
+template <typename OutputType>
+void createTestCasesForAllShaderTypes(const ShaderExecutorParams &params,
+                                      std::vector<tcu::TestNode *> &outputTests)
+{
+    DE_ASSERT(params.context);
+
+    deqp::Context &context       = *(params.context);
+    glu::ContextType contextType = context.getRenderContext().getType();
+
+    ShaderSpec shaderSpec;
+    shaderSpec.version = glu::getContextTypeGLSLVersion(contextType);
+    shaderSpec.source  = params.source;
+    shaderSpec.outputs.push_back(
+        Symbol("out0", glu::VarType(params.outType, glu::PRECISION_HIGHP)));
+
+    // Construct list of shaders for which tests can be created
+    std::vector<glu::ShaderType> shaderTypes;
+
+    if (glu::contextSupports(contextType, glu::ApiType::core(4, 3)))
+    {
+        shaderTypes.push_back(glu::SHADERTYPE_VERTEX);
+        shaderTypes.push_back(glu::SHADERTYPE_FRAGMENT);
+        shaderTypes.push_back(glu::SHADERTYPE_COMPUTE);
+        shaderTypes.push_back(glu::SHADERTYPE_GEOMETRY);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_CONTROL);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_EVALUATION);
+    }
+    else if (glu::contextSupports(contextType, glu::ApiType::es(3, 2)))
+    {
+        shaderSpec.version = glu::GLSL_VERSION_320_ES;
+        shaderTypes.push_back(glu::SHADERTYPE_GEOMETRY);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_CONTROL);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_EVALUATION);
+    }
+    else if (glu::contextSupports(contextType, glu::ApiType::es(3, 1)))
+    {
+        shaderSpec.version = glu::GLSL_VERSION_310_ES;
+        shaderTypes.push_back(glu::SHADERTYPE_COMPUTE);
+        shaderTypes.push_back(glu::SHADERTYPE_GEOMETRY);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_CONTROL);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_EVALUATION);
+    }
+    else
+    {
+        shaderTypes.push_back(glu::SHADERTYPE_VERTEX);
+        shaderTypes.push_back(glu::SHADERTYPE_FRAGMENT);
+    }
+
+    shaderSpec.globalDeclarations += "precision highp float;\n";
+
+    for (std::size_t typeIndex = 0; typeIndex < shaderTypes.size(); ++typeIndex)
+    {
+        glu::ShaderType shaderType = shaderTypes[typeIndex];
+        std::string caseName(params.caseName + '_' + getShaderTypeName(shaderType));
+
+        outputTests.push_back(
+            new ExecutorTestCase<OutputType>(context, caseName.c_str(), shaderType, shaderSpec,
+                                             static_cast<OutputType>(params.outputFloat)));
+    }
+}
+
+void createTests(deqp::Context &context,
+                 const TestParams *cases,
+                 int numCases,
+                 const char *shaderTemplateSrc,
+                 const char *casePrefix,
+                 std::vector<tcu::TestNode *> &outputTests)
+{
+    const tcu::StringTemplate shaderTemplate(shaderTemplateSrc);
+    const char *componentAccess[] = {"", ".y", ".z", ".w"};
+
+    ShaderExecutorParams shaderExecutorParams;
+    shaderExecutorParams.context = &context;
+
+    for (int caseIndex = 0; caseIndex < numCases; caseIndex++)
+    {
+        const TestParams &testCase   = cases[caseIndex];
+        const std::string baseName   = testCase.name;
+        const int minComponents      = testCase.minComponents;
+        const int maxComponents      = testCase.maxComponents;
+        const glu::DataType inType   = testCase.inType;
+        const std::string expression = testCase.expression;
+
+        // Check for presence of func(vec, scalar) style specialization,
+        // use as gatekeeper for applying said specialization
+        const bool alwaysScalar = expression.find("${MT}") != std::string::npos;
+
+        std::map<std::string, std::string> shaderTemplateParams;
+        shaderTemplateParams["CASE_BASE_TYPE"] = glu::getDataTypeName(testCase.outType);
+
+        shaderExecutorParams.outType     = testCase.outType;
+        shaderExecutorParams.outputFloat = testCase.outputFloat;
+
+        for (int component = minComponents - 1; component < maxComponents; component++)
+        {
+            // Get type name eg. float, vec2, vec3, vec4 (same for other primitive types)
+            glu::DataType dataType = static_cast<glu::DataType>(inType + component);
+            std::string typeName   = glu::getDataTypeName(dataType);
+
+            // ${T} => final type, ${MT} => final type but with scalar version usable even when T is
+            // a vector
+            std::map<std::string, std::string> expressionTemplateParams;
+            expressionTemplateParams["T"]  = typeName;
+            expressionTemplateParams["MT"] = typeName;
+
+            const tcu::StringTemplate expressionTemplate(expression);
+
+            // Add vector access to expression as needed
+            shaderTemplateParams["CASE_EXPRESSION"] =
+                expressionTemplate.specialize(expressionTemplateParams) +
+                componentAccess[component];
+
+            {
+                // Add type to case name if we are generating multiple versions
+                shaderExecutorParams.caseName = (casePrefix + baseName);
+                if (minComponents != maxComponents)
+                    shaderExecutorParams.caseName += ("_" + typeName);
+
+                shaderExecutorParams.source = shaderTemplate.specialize(shaderTemplateParams);
+                if (shaderExecutorParams.outType == glu::TYPE_FLOAT)
+                    createTestCasesForAllShaderTypes<float>(shaderExecutorParams, outputTests);
+                else
+                    createTestCasesForAllShaderTypes<int>(shaderExecutorParams, outputTests);
+            }
+
+            // Deal with functions that allways accept one ore more scalar parameters even when
+            // others are vectors
+            if (alwaysScalar && component > 0)
+            {
+                shaderExecutorParams.caseName =
+                    casePrefix + baseName + "_" + typeName + "_" + glu::getDataTypeName(inType);
+
+                expressionTemplateParams["MT"] = glu::getDataTypeName(inType);
+                shaderTemplateParams["CASE_EXPRESSION"] =
+                    expressionTemplate.specialize(expressionTemplateParams) +
+                    componentAccess[component];
+
+                shaderExecutorParams.source = shaderTemplate.specialize(shaderTemplateParams);
+                if (shaderExecutorParams.outType == glu::TYPE_FLOAT)
+                    createTestCasesForAllShaderTypes<float>(shaderExecutorParams, outputTests);
+                else
+                    createTestCasesForAllShaderTypes<int>(shaderExecutorParams, outputTests);
+            }
+        }  // component loop
+    }
+}
+
+}  // namespace ShaderConstExpr
+
+ShaderConstExprTests::ShaderConstExprTests(deqp::Context &context)
+    : deqp::TestCaseGroup(context, "constant_expressions", "Constant expressions")
+{}
+
+ShaderConstExprTests::~ShaderConstExprTests(void) {}
+
+void ShaderConstExprTests::init(void)
+{
+    // Needed for autogenerating shader code for increased component counts
+    DE_STATIC_ASSERT(glu::TYPE_FLOAT + 1 == glu::TYPE_FLOAT_VEC2);
+    DE_STATIC_ASSERT(glu::TYPE_FLOAT + 2 == glu::TYPE_FLOAT_VEC3);
+    DE_STATIC_ASSERT(glu::TYPE_FLOAT + 3 == glu::TYPE_FLOAT_VEC4);
+
+    DE_STATIC_ASSERT(glu::TYPE_INT + 1 == glu::TYPE_INT_VEC2);
+    DE_STATIC_ASSERT(glu::TYPE_INT + 2 == glu::TYPE_INT_VEC3);
+    DE_STATIC_ASSERT(glu::TYPE_INT + 3 == glu::TYPE_INT_VEC4);
+
+    DE_STATIC_ASSERT(glu::TYPE_UINT + 1 == glu::TYPE_UINT_VEC2);
+    DE_STATIC_ASSERT(glu::TYPE_UINT + 2 == glu::TYPE_UINT_VEC3);
+    DE_STATIC_ASSERT(glu::TYPE_UINT + 3 == glu::TYPE_UINT_VEC4);
+
+    DE_STATIC_ASSERT(glu::TYPE_BOOL + 1 == glu::TYPE_BOOL_VEC2);
+    DE_STATIC_ASSERT(glu::TYPE_BOOL + 2 == glu::TYPE_BOOL_VEC3);
+    DE_STATIC_ASSERT(glu::TYPE_BOOL + 3 == glu::TYPE_BOOL_VEC4);
+
+    // ${T} => final type, ${MT} => final type but with scalar version usable even when T is a
+    // vector
+    const ShaderConstExpr::TestParams baseCases[] = {
+        {"radians",
+         "radians(${T} (90.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatRadians(90.0f)}},
+        {"degrees",
+         "degrees(${T} (2.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatDegrees(2.0f)}},
+        {"sin", "sin(${T} (3.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatSin(3.0f)}},
+        {"cos", "cos(${T} (3.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatCos(3.2f)}},
+        {"asin", "asin(${T} (0.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatAsin(0.0f)}},
+        {"acos", "acos(${T} (1.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatAcos(1.0f)}},
+        {"pow",
+         "pow(${T} (1.7), ${T} (3.5))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatPow(1.7f, 3.5f)}},
+        {"exp", "exp(${T} (4.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatExp(4.2f)}},
+        {"log", "log(${T} (42.12))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatLog(42.12f)}},
+        {"exp2", "exp2(${T} (6.7))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatExp2(6.7f)}},
+        {"log2",
+         "log2(${T} (100.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatLog2(100.0f)}},
+        {"sqrt", "sqrt(${T} (10.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatSqrt(10.0f)}},
+        {"inversesqrt",
+         "inversesqrt(${T} (10.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatRsq(10.0f)}},
+        {"abs", "abs(${T} (-42))", glu::TYPE_INT, 1, 4, glu::TYPE_INT, {42}},
+        {"sign", "sign(${T} (-18.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {-1.0f}},
+        {"floor",
+         "floor(${T} (37.3))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatFloor(37.3f)}},
+        {"trunc", "trunc(${T} (-1.8))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {-1.0f}},
+        {"round", "round(${T} (42.1))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {42.0f}},
+        {"ceil", "ceil(${T} (82.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {deFloatCeil(82.2f)}},
+        {"mod",
+         "mod(${T} (87.65), ${MT} (3.7))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {deFloatMod(87.65f, 3.7f)}},
+        {"min", "min(${T} (12.3), ${MT} (32.1))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {12.3f}},
+        {"max", "max(${T} (12.3), ${MT} (32.1))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_FLOAT, {32.1f}},
+        {"clamp",
+         "clamp(${T} (42.1),    ${MT} (10.0), ${MT} (15.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_FLOAT,
+         {15.0f}},
+        {"length_float", "length(1.0)", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {1.0f}},
+        {"length_vec2",
+         "length(vec2(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatSqrt(2.0f)}},
+        {"length_vec3",
+         "length(vec3(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatSqrt(3.0f)}},
+        {"length_vec4",
+         "length(vec4(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatSqrt(4.0f)}},
+        {"dot_float", "dot(1.0, 1.0)", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {1.0f}},
+        {"dot_vec2", "dot(vec2(1.0), vec2(1.0))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {2.0f}},
+        {"dot_vec3", "dot(vec3(1.0), vec3(1.0))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {3.0f}},
+        {"dot_vec4", "dot(vec4(1.0), vec4(1.0))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {4.0f}},
+        {"normalize_float", "normalize(1.0)", glu::TYPE_FLOAT, 1, 1, glu::TYPE_FLOAT, {1.0f}},
+        {"normalize_vec2",
+         "normalize(vec2(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatRsq(2.0f)}},
+        {"normalize_vec3",
+         "normalize(vec3(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatRsq(3.0f)}},
+        {"normalize_vec4",
+         "normalize(vec4(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_FLOAT,
+         {deFloatRsq(4.0f)}},
+    };
+
+    const ShaderConstExpr::TestParams arrayCases[] = {
+        {"radians",
+         "radians(${T} (60.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatRadians(60.0f)}},
+        {"degrees",
+         "degrees(${T} (0.11))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatDegrees(0.11f)}},
+        {"sin",
+         "${T} (1.0) + sin(${T} (0.7))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {1.0f + deFloatSin(0.7f)}},
+        {"cos",
+         "${T} (1.0) + cos(${T} (0.7))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {1.0f + deFloatCos(0.7f)}},
+        {"asin", "asin(${T} (0.9))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatAsin(0.9f)}},
+        {"acos", "acos(${T} (-0.5))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatAcos(-0.5f)}},
+        {"pow",
+         "pow(${T} (2.0), ${T} (2.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatPow(2.0f, 2.0f)}},
+        {"exp", "exp(${T} (1.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatExp(1.2f)}},
+        {"log", "log(${T} (8.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatLog(8.0f)}},
+        {"exp2", "exp2(${T} (2.1))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatExp2(2.1f)}},
+        {"log2", "log2(${T} (9.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatLog2(9.0)}},
+        {"sqrt", "sqrt(${T} (4.5))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatSqrt(4.5f)}},
+        {"inversesqrt",
+         "inversesqrt(${T} (0.26))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatRsq(0.26f)}},
+        {"abs", "abs(${T} (-2))", glu::TYPE_INT, 1, 4, glu::TYPE_INT, {2}},
+        {"sign", "sign(${T} (18.0))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatSign(18.0f)}},
+        {"floor", "floor(${T} (3.3))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatFloor(3.3f)}},
+        {"trunc", "trunc(${T} (2.8))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {2}},
+        {"round", "round(${T} (2.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatRound(2.2f)}},
+        {"ceil", "ceil(${T} (2.2))", glu::TYPE_FLOAT, 1, 4, glu::TYPE_INT, {deFloatCeil(2.2f)}},
+        {"mod",
+         "mod(${T} (7.1), ${MT} (4.0))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatMod(7.1f, 4.0f)}},
+        {"min",
+         "min(${T} (2.3), ${MT} (3.1))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatMin(2.3f, 3.1f)}},
+        {"max",
+         "max(${T} (2.3), ${MT} (3.1))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {deFloatMax(2.3f, 3.1f)}},
+        {"clamp",
+         "clamp(${T} (4.1), ${MT} (2.1), ${MT} (3.1))",
+         glu::TYPE_FLOAT,
+         1,
+         4,
+         glu::TYPE_INT,
+         {3}},
+        {"length_float", "length(2.1)", glu::TYPE_FLOAT, 1, 1, glu::TYPE_INT, {2}},
+        {"length_vec2",
+         "length(vec2(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {deFloatSqrt(2.0f)}},
+        {"length_vec3",
+         "length(vec3(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {deFloatSqrt(3.0f)}},
+        {"length_vec4",
+         "length(vec4(1.0))",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {deFloatSqrt(4.0f)}},
+        {"dot_float", "dot(1.0, 1.0)", glu::TYPE_FLOAT, 1, 1, glu::TYPE_INT, {1}},
+        {"dot_vec2", "dot(vec2(1.0), vec2(1.01))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_INT, {2}},
+        {"dot_vec3", "dot(vec3(1.0), vec3(1.1))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_INT, {3}},
+        {"dot_vec4", "dot(vec4(1.0), vec4(1.1))", glu::TYPE_FLOAT, 1, 1, glu::TYPE_INT, {4}},
+        {"normalize_float",
+         "${T} (1.0) + normalize(2.0)",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {2}},
+        {"normalize_vec2",
+         "${T} (1.0) + normalize(vec2(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {1.0f + deFloatRsq(2.0f)}},
+        {"normalize_vec3",
+         "${T} (1.0) + normalize(vec3(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {1.0f + deFloatRsq(3.0f)}},
+        {"normalize_vec4",
+         "${T} (1.0) + normalize(vec4(1.0)).x",
+         glu::TYPE_FLOAT,
+         1,
+         1,
+         glu::TYPE_INT,
+         {1.0f + deFloatRsq(4.0f)}},
+    };
+
+    const char *basicShaderTemplate =
+        "const ${CASE_BASE_TYPE} cval = ${CASE_EXPRESSION};\n"
+        "out0 = cval;\n";
+
+    std::vector<tcu::TestNode *> children;
+    ShaderConstExpr::createTests(m_context, baseCases, DE_LENGTH_OF_ARRAY(baseCases),
+                                 basicShaderTemplate, "basic_", children);
+
+    const char *arrayShaderTemplate =
+        "float array[int(${CASE_EXPRESSION})];\n"
+        "out0 = array.length();\n";
+
+    ShaderConstExpr::createTests(m_context, arrayCases, DE_LENGTH_OF_ARRAY(arrayCases),
+                                 arrayShaderTemplate, "array_", children);
+
+    for (std::size_t i = 0; i < children.size(); i++)
+        addChild(children[i]);
+}
+
+}  // namespace glcts
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderMacroTests_override.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderMacroTests_override.cpp
new file mode 100644
index 0000000..739cba6
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/glcShaderMacroTests_override.cpp
@@ -0,0 +1,147 @@
+/*-------------------------------------------------------------------------
+ * OpenGL Conformance Test Suite
+ * -----------------------------
+ *
+ * Copyright (c) 2017 The Khronos Group Inc.
+ *
+ * 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
+ */ /*-------------------------------------------------------------------*/
+
+#include "deSharedPtr.hpp"
+#include "glcShaderMacroTests.hpp"
+#include "glsShaderExecUtil.hpp"
+#include "gluContextInfo.hpp"
+#include "tcuTestLog.hpp"
+
+namespace glcts
+{
+
+using tcu::TestLog;
+using namespace deqp::gls::ShaderExecUtil;
+
+class ExecutorTestCase : public deqp::TestCase
+{
+  public:
+    ExecutorTestCase(deqp::Context &context,
+                     const char *name,
+                     glu::ShaderType shaderType,
+                     const ShaderSpec &shaderSpec,
+                     int expectedOutput);
+    virtual ~ExecutorTestCase(void);
+    virtual tcu::TestNode::IterateResult iterate(void);
+
+  protected:
+    glu::ShaderType m_shaderType;
+    ShaderSpec m_shaderSpec;
+    int m_expectedOutput;
+};
+
+ExecutorTestCase::ExecutorTestCase(deqp::Context &context,
+                                   const char *name,
+                                   glu::ShaderType shaderType,
+                                   const ShaderSpec &shaderSpec,
+                                   int expectedOutput)
+    : deqp::TestCase(context, name, ""),
+      m_shaderType(shaderType),
+      m_shaderSpec(shaderSpec),
+      m_expectedOutput(expectedOutput)
+{}
+
+ExecutorTestCase::~ExecutorTestCase(void) {}
+
+tcu::TestNode::IterateResult ExecutorTestCase::iterate(void)
+{
+    de::SharedPtr<ShaderExecutor> executor(
+        createExecutor(m_context.getRenderContext(), m_shaderType, m_shaderSpec));
+
+    DE_ASSERT(executor.get());
+
+    executor->log(m_context.getTestContext().getLog());
+
+    if (!executor->isOk())
+        TCU_FAIL("Compilation failed");
+
+    executor->useProgram();
+
+    int result          = 0;
+    void *const outputs = &result;
+    executor->execute(1, DE_NULL, &outputs);
+
+    if (m_expectedOutput == result)
+    {
+        m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+        return tcu::TestNode::STOP;
+    }
+
+    m_context.getTestContext().getLog()
+        << tcu::TestLog::Message << "Expected: " << m_expectedOutput
+        << " but test returned: " << result << tcu::TestLog::EndMessage;
+    m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
+
+    return tcu::TestNode::STOP;
+}
+
+ShaderMacroTests::ShaderMacroTests(deqp::Context &context)
+    : TestCaseGroup(context, "shader_macros", "Shader Macro tests")
+{}
+
+ShaderMacroTests::~ShaderMacroTests() {}
+
+void ShaderMacroTests::init(void)
+{
+    const char *fragmentPrecisionShaderTemplate =
+        "out0 = 0;\n"
+        "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
+        "out0 = 1;\n"
+        "#endif\n";
+
+    glu::ContextType contextType = m_context.getRenderContext().getType();
+
+    ShaderSpec shaderSpec;
+    shaderSpec.version = glu::getContextTypeGLSLVersion(contextType);
+    shaderSpec.source  = fragmentPrecisionShaderTemplate;
+    shaderSpec.outputs.push_back(Symbol("out0", glu::VarType(glu::TYPE_INT, glu::PRECISION_HIGHP)));
+
+    std::vector<glu::ShaderType> shaderTypes;
+    shaderTypes.push_back(glu::SHADERTYPE_VERTEX);
+    shaderTypes.push_back(glu::SHADERTYPE_FRAGMENT);
+
+    if (glu::contextSupports(contextType, glu::ApiType::es(3, 2)))
+    {
+        shaderSpec.version = glu::GLSL_VERSION_320_ES;
+        shaderTypes.push_back(glu::SHADERTYPE_GEOMETRY);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_CONTROL);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_EVALUATION);
+    }
+    else if (glu::contextSupports(contextType, glu::ApiType::es(3, 1)))
+    {
+        shaderSpec.version = glu::GLSL_VERSION_310_ES;
+        shaderTypes.push_back(glu::SHADERTYPE_GEOMETRY);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_CONTROL);
+        shaderTypes.push_back(glu::SHADERTYPE_TESSELLATION_EVALUATION);
+    }
+
+    for (std::size_t typeIndex = 0; typeIndex < shaderTypes.size(); ++typeIndex)
+    {
+        glu::ShaderType shaderType = shaderTypes[typeIndex];
+        std::string caseName("fragment_precision_high_");
+        caseName += getShaderTypeName(shaderType);
+        addChild(new ExecutorTestCase(m_context, caseName.c_str(), shaderType, shaderSpec, 1));
+    }
+}
+
+}  // namespace glcts
diff --git a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp
index 89bd1d8..f9d459d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/deqp_support/tes31Context_override.cpp
@@ -24,17 +24,17 @@
 {
 
 Context::Context (tcu::TestContext& testCtx)
-    : m_testCtx        (testCtx)
-    , m_renderCtx    (DE_NULL)
-    , m_contextInfo    (DE_NULL)
+    : m_testCtx     (testCtx)
+    , m_renderCtx   (DE_NULL)
+    , m_contextInfo (DE_NULL)
 {
     if (m_testCtx.getCommandLine().getRunMode() == tcu::RUNMODE_EXECUTE)
         createRenderContext();
     else
     {
         // \todo [2016-11-15 pyry] Many tests (erroneously) inspect context type
-        //                           during test hierarchy construction. We should fix that
-        //                           and revert dummy context to advertise unknown context type.
+        //                         during test hierarchy construction. We should fix that
+        //                         and revert dummy context to advertise unknown context type.
         m_renderCtx = new glu::DummyRenderContext(glu::ContextType(glu::ApiType::es(3,1)));
     }
 }
@@ -57,17 +57,17 @@
 #if 0
         try
         {
-            m_renderCtx        = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 2));
+            m_renderCtx     = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 2));
         }
         catch (...)
         {
-            m_renderCtx        = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 1));
+            m_renderCtx     = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 1));
         }
 #else
         // Override the original behavior (above) to only create a 3.1 context
-        m_renderCtx        = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 1));
+        m_renderCtx     = glu::createDefaultRenderContext(m_testCtx.getPlatform(), m_testCtx.getCommandLine(), glu::ApiType::es(3, 1));
 #endif
-        m_contextInfo    = glu::ContextInfo::create(*m_renderCtx);
+        m_contextInfo   = glu::ContextInfo::create(*m_renderCtx);
     }
     catch (...)
     {
@@ -81,8 +81,8 @@
     delete m_contextInfo;
     delete m_renderCtx;
 
-    m_contextInfo    = DE_NULL;
-    m_renderCtx        = DE_NULL;
+    m_contextInfo   = DE_NULL;
+    m_renderCtx     = DE_NULL;
 }
 
 const tcu::RenderTarget& Context::getRenderTarget (void) const
@@ -93,4 +93,4 @@
 } // gles31
 } // deqp
 
-// clang-format on
+// clang-format on
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBackwardsCompatibleContextTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBackwardsCompatibleContextTest.cpp
index e784921..e2a899a 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBackwardsCompatibleContextTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBackwardsCompatibleContextTest.cpp
@@ -133,8 +133,6 @@
 {
     ANGLE_SKIP_TEST_IF(
         !IsEGLDisplayExtensionEnabled(mDisplay, "EGL_ANGLE_create_context_backwards_compatible"));
-    // TODO(anglebug.com/3750): Re-evaluate when Vulkan can return 3.0 contexts
-    ANGLE_SKIP_TEST_IF(isVulkanRenderer());
 
     EGLint es3ContextAttribs[] = {
         EGL_CONTEXT_MAJOR_VERSION, 3, EGL_CONTEXT_MINOR_VERSION, 0, EGL_NONE, EGL_NONE};
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBlobCacheTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBlobCacheTest.cpp
index 90912e1..0f376ce 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBlobCacheTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLBlobCacheTest.cpp
@@ -214,4 +214,4 @@
     EXPECT_EGL_ERROR(EGL_BAD_PARAMETER);
 }
 
-ANGLE_INSTANTIATE_TEST(EGLBlobCacheTest, ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(EGLBlobCacheTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextSharingTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextSharingTest.cpp
index 16bdc44..2e80366 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextSharingTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextSharingTest.cpp
@@ -10,6 +10,7 @@
 
 #include "test_utils/ANGLETest.h"
 #include "test_utils/angle_test_configs.h"
+#include "test_utils/gl_raii.h"
 #include "util/EGLWindow.h"
 
 using namespace angle;
@@ -243,6 +244,126 @@
     ASSERT_GL_FALSE(glIsTexture(textureFromCtx0));
 }
 
+// Tests that deleting an object on one Context doesn't destroy it ahead-of-time. Mostly focused
+// on the Vulkan back-end where we manage object lifetime manually.
+TEST_P(EGLContextSharingTest, TextureLifetime)
+{
+    EGLWindow *eglWindow = getEGLWindow();
+    EGLConfig config     = getEGLWindow()->getConfig();
+    EGLDisplay display   = getEGLWindow()->getDisplay();
+
+    // Create a pbuffer surface for use with a shared context.
+    EGLSurface surface     = eglWindow->getSurface();
+    EGLContext mainContext = eglWindow->getContext();
+
+    // Initialize a shared context.
+    mContexts[0] = eglCreateContext(display, config, mainContext, nullptr);
+    ASSERT_NE(mContexts[0], EGL_NO_CONTEXT);
+
+    // Create a Texture on the shared context.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mContexts[0]));
+
+    constexpr GLsizei kTexSize                  = 2;
+    const GLColor kTexData[kTexSize * kTexSize] = {GLColor::red, GLColor::green, GLColor::blue,
+                                                   GLColor::yellow};
+    GLTexture tex;
+    glBindTexture(GL_TEXTURE_2D, tex);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kTexSize, kTexSize, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+                 kTexData);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+    // Make the main Context current and draw with the texture.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mainContext));
+
+    glBindTexture(GL_TEXTURE_2D, tex);
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    glUseProgram(program);
+
+    // No uniform update because the update seems to hide the error on Vulkan.
+
+    // Enqueue the draw call.
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5f);
+    EXPECT_GL_NO_ERROR();
+
+    // Delete the texture in the main context to orphan it.
+    // Do not read back the data to keep the commands in the graph.
+    tex.reset();
+
+    // Bind and delete the test context. This should trigger texture garbage collection.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mContexts[0]));
+    SafeDestroyContext(display, mContexts[0]);
+
+    // Bind the main context to clean up the test.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mainContext));
+}
+
+// Tests that deleting an object on one Context doesn't destroy it ahead-of-time. Mostly focused
+// on the Vulkan back-end where we manage object lifetime manually.
+TEST_P(EGLContextSharingTest, SamplerLifetime)
+{
+    EGLWindow *eglWindow = getEGLWindow();
+    EGLConfig config     = getEGLWindow()->getConfig();
+    EGLDisplay display   = getEGLWindow()->getDisplay();
+
+    ANGLE_SKIP_TEST_IF(getClientMajorVersion() < 3);
+    ANGLE_SKIP_TEST_IF(!IsEGLDisplayExtensionEnabled(display, "EGL_KHR_create_context"));
+
+    // Create a pbuffer surface for use with a shared context.
+    EGLSurface surface     = eglWindow->getSurface();
+    EGLContext mainContext = eglWindow->getContext();
+
+    std::vector<EGLint> contextAttributes;
+    contextAttributes.push_back(EGL_CONTEXT_MAJOR_VERSION_KHR);
+    contextAttributes.push_back(getClientMajorVersion());
+    contextAttributes.push_back(EGL_NONE);
+
+    // Initialize a shared context.
+    mContexts[0] = eglCreateContext(display, config, mainContext, contextAttributes.data());
+    ASSERT_NE(mContexts[0], EGL_NO_CONTEXT);
+
+    // Create a Texture on the shared context. Also create a Sampler object.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mContexts[0]));
+
+    constexpr GLsizei kTexSize                  = 2;
+    const GLColor kTexData[kTexSize * kTexSize] = {GLColor::red, GLColor::green, GLColor::blue,
+                                                   GLColor::yellow};
+    GLTexture tex;
+    glBindTexture(GL_TEXTURE_2D, tex);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kTexSize, kTexSize, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+                 kTexData);
+
+    GLSampler sampler;
+    glBindSampler(0, sampler);
+    glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+    // Make the main Context current and draw with the texture and sampler.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mainContext));
+
+    glBindTexture(GL_TEXTURE_2D, tex);
+    glBindSampler(0, sampler);
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    glUseProgram(program);
+
+    // No uniform update because the update seems to hide the error on Vulkan.
+
+    // Enqueue the draw call.
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5f);
+    EXPECT_GL_NO_ERROR();
+
+    // Delete the texture and sampler in the main context to orphan them.
+    // Do not read back the data to keep the commands in the graph.
+    tex.reset();
+    sampler.reset();
+
+    // Bind and delete the test context. This should trigger texture garbage collection.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mContexts[0]));
+    SafeDestroyContext(display, mContexts[0]);
+
+    // Bind the main context to clean up the test.
+    ASSERT_EGL_TRUE(eglMakeCurrent(display, surface, surface, mainContext));
+}
 }  // anonymous namespace
 
 ANGLE_INSTANTIATE_TEST(EGLContextSharingTest,
@@ -251,4 +372,5 @@
                        ES3_D3D11(),
                        ES2_OPENGL(),
                        ES3_OPENGL(),
-                       ES2_VULKAN());
+                       ES2_VULKAN(),
+                       ES3_VULKAN());
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp
new file mode 100644
index 0000000..51f6245
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp
@@ -0,0 +1,474 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// EGLPrintEGLinfoTest.cpp:
+//   This test prints out the extension strings, configs and their attributes
+//
+
+#include <gtest/gtest.h>
+
+#include "common/string_utils.h"
+#include "test_utils/ANGLETest.h"
+
+using namespace angle;
+
+class EGLPrintEGLinfoTest : public ANGLETest
+{
+  protected:
+    EGLPrintEGLinfoTest() {}
+
+    void testSetUp() override
+    {
+        mDisplay = getEGLWindow()->getDisplay();
+        ASSERT_TRUE(mDisplay != EGL_NO_DISPLAY);
+    }
+
+    EGLDisplay mDisplay = EGL_NO_DISPLAY;
+};
+
+// Parse space separated extension string into a vector of strings
+std::vector<std::string> ParseExtensions(const char *extensions)
+{
+    std::string extensionsStr(extensions);
+    std::vector<std::string> extensionsVec;
+    SplitStringAlongWhitespace(extensionsStr, &extensionsVec);
+    return extensionsVec;
+}
+
+// Query a EGL attribute
+EGLint GetAttrib(EGLDisplay display, EGLConfig config, EGLint attrib)
+{
+    EGLint value = 0;
+    EXPECT_EGL_TRUE(eglGetConfigAttrib(display, config, attrib, &value));
+    return value;
+}
+
+// Query a egl string
+const char *GetEGLString(EGLDisplay display, EGLint name)
+{
+    const char *value = "";
+    value             = eglQueryString(display, name);
+    EXPECT_TRUE(value != nullptr);
+    return value;
+}
+
+// Query a GL string
+const char *GetGLString(EGLint name)
+{
+    const char *value = "";
+    value             = reinterpret_cast<const char *>(glGetString(name));
+    EXPECT_TRUE(value != nullptr);
+    return value;
+}
+
+// Print the EGL strings and extensions
+TEST_P(EGLPrintEGLinfoTest, PrintEGLInfo)
+{
+    std::cout << "    EGL Information:" << std::endl;
+    std::cout << "\tVendor: " << GetEGLString(mDisplay, EGL_VENDOR) << std::endl;
+    std::cout << "\tVersion: " << GetEGLString(mDisplay, EGL_VENDOR) << std::endl;
+    std::cout << "\tClient APIs: " << GetEGLString(mDisplay, EGL_CLIENT_APIS) << std::endl;
+
+    std::cout << "\tEGL Client Extensions:" << std::endl;
+    for (auto extension : ParseExtensions(GetEGLString(EGL_NO_DISPLAY, EGL_EXTENSIONS)))
+    {
+        std::cout << "\t\t" << extension << std::endl;
+    }
+
+    std::cout << "\tEGL Display Extensions:" << std::endl;
+    for (auto extension : ParseExtensions(GetEGLString(mDisplay, EGL_EXTENSIONS)))
+    {
+        std::cout << "\t\t" << extension << std::endl;
+    }
+
+    std::cout << std::endl;
+}
+
+// Print the GL strings and extensions
+TEST_P(EGLPrintEGLinfoTest, PrintGLInfo)
+{
+    std::cout << "    GLES Information:" << std::endl;
+    std::cout << "\tVendor: " << GetGLString(GL_VENDOR) << std::endl;
+    std::cout << "\tVersion: " << GetGLString(GL_VERSION) << std::endl;
+    std::cout << "\tRenderer: " << GetGLString(GL_RENDERER) << std::endl;
+    std::cout << "\tShader: " << GetGLString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
+
+    std::cout << "\tExtensions:" << std::endl;
+    for (auto extension : ParseExtensions(GetGLString(GL_EXTENSIONS)))
+    {
+        std::cout << "\t\t" << extension << std::endl;
+    }
+
+    std::cout << std::endl;
+}
+
+#define QUERY_HELPER(enumValue, enumString, stream)                                    \
+    {                                                                                  \
+        GLint result;                                                                  \
+        glGetIntegerv(enumValue, &result);                                             \
+        ASSERT_GL_NO_ERROR();                                                          \
+        stream << enumString + std::string(",") + std::to_string(result) << std::endl; \
+    }
+
+#define QUERY_ARRAY_HELPER(enumValue, enumString, size, stream)               \
+    {                                                                         \
+        GLint result[size];                                                   \
+        glGetIntegerv(enumValue, result);                                     \
+        ASSERT_GL_NO_ERROR();                                                 \
+        std::stringstream results;                                            \
+        for (int i = 0; i < size; i++)                                        \
+            results << result[i] << " ";                                      \
+        stream << enumString + std::string(",") + results.str() << std::endl; \
+    }
+
+#define QUERY_INDEXED_HELPER(enumValue, enumString, index, stream)                     \
+    {                                                                                  \
+        GLint result;                                                                  \
+        glGetIntegeri_v(enumValue, index, &result);                                    \
+        ASSERT_GL_NO_ERROR();                                                          \
+        stream << enumString + std::string(",") + std::to_string(result) << std::endl; \
+    }
+
+#define QUERY_AND_LOG_CAPABILITY(enum, stream) QUERY_HELPER(enum, #enum, stream)
+
+#define QUERY_AND_LOG_CAPABILITY_ARRAY(enum, size, stream) \
+    QUERY_ARRAY_HELPER(enum, #enum, size, stream)
+
+#define QUERY_AND_LOG_CAPABILITY_INDEXED(enum, index, stream) \
+    QUERY_INDEXED_HELPER(enum, #enum "[" #index "]", index, stream)
+
+static void LogGles2Capabilities(std::ostream &stream)
+{
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_CUBE_MAP_TEXTURE_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_UNIFORM_VECTORS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_RENDERBUFFER_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TEXTURE_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VARYING_VECTORS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATTRIBS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_UNIFORM_VECTORS, stream);
+    constexpr int kMaxViewPortDimsReturnValuesSize = 2;
+    QUERY_AND_LOG_CAPABILITY_ARRAY(GL_MAX_VIEWPORT_DIMS, kMaxViewPortDimsReturnValuesSize, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_NUM_COMPRESSED_TEXTURE_FORMATS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_NUM_PROGRAM_BINARY_FORMATS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_NUM_SHADER_BINARY_FORMATS, stream);
+}
+
+static void LogGles3Capabilities(std::ostream &stream)
+{
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_3D_TEXTURE_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ARRAY_TEXTURE_LAYERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COLOR_ATTACHMENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_DRAW_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ELEMENT_INDEX, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ELEMENTS_INDICES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ELEMENTS_VERTICES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_INPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_PROGRAM_TEXEL_OFFSET, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_SAMPLES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_SERVER_WAIT_TIMEOUT, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TEXTURE_LOD_BIAS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_UNIFORM_BLOCK_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_UNIFORM_BUFFER_BINDINGS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VARYING_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MIN_PROGRAM_TEXEL_OFFSET, stream);
+
+    // GLES3 capabilities are a superset of GLES2
+    LogGles2Capabilities(stream);
+}
+
+static void LogGles31Capabilities(std::ostream &stream)
+{
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COLOR_TEXTURE_SAMPLES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_SHARED_MEMORY_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 0, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 1, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 2, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 0, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 1, stream);
+    QUERY_AND_LOG_CAPABILITY_INDEXED(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 2, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_DEPTH_TEXTURE_SAMPLES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAMEBUFFER_HEIGHT, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAMEBUFFER_SAMPLES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAMEBUFFER_WIDTH, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_INTEGER_SAMPLES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_SAMPLE_MASK_WORDS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_UNIFORM_LOCATIONS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATTRIB_BINDINGS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_ATTRIB_STRIDE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET, stream);
+
+    // GLES31 capabilities are a superset of GLES3
+    LogGles3Capabilities(stream);
+}
+
+static void LogGles32Capabilities(std::ostream &stream)
+{
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_DEBUG_GROUP_STACK_DEPTH, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_DEBUG_LOGGED_MESSAGES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_DEBUG_MESSAGE_LENGTH, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAGMENT_INTERPOLATION_OFFSET, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_FRAMEBUFFER_LAYERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_INPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_OUTPUT_VERTICES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_SHADER_INVOCATIONS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_GEOMETRY_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_LABEL_LENGTH, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_PATCH_VERTICES, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_INPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_GEN_LEVEL, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TESS_PATCH_COMPONENTS, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MAX_TEXTURE_BUFFER_SIZE, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MIN_FRAGMENT_INTERPOLATION_OFFSET, stream);
+    QUERY_AND_LOG_CAPABILITY(GL_MIN_SAMPLE_SHADING_VALUE, stream);
+
+    // GLES32 capabilities are a superset of GLES31
+    LogGles31Capabilities(stream);
+}
+
+// Prints GLES Capabilities listed at
+// https://opengles.gpuinfo.org/listcapabilities.php
+// in CSV format
+TEST_P(EGLPrintEGLinfoTest, PrintGLESCapabilities)
+{
+    std::cout << std::endl << "Capability name, value" << std::endl << std::endl;
+
+    std::ostream &stream = std::cout;
+
+    switch (getClientMajorVersion())
+    {
+        case 3:
+            switch (getClientMinorVersion())
+            {
+                case 2:
+                    LogGles32Capabilities(stream);
+                    break;
+                case 1:
+                    LogGles31Capabilities(stream);
+                    break;
+                case 0:
+                    LogGles3Capabilities(stream);
+                    break;
+                default:
+                    FAIL() << "unknown client minor version.";
+            }
+            break;
+        case 2:
+            LogGles2Capabilities(stream);
+            break;
+        default:
+            FAIL() << "unknown client major version.";
+    }
+
+    stream << std::endl;
+}
+
+// Print the EGL configs with attributes
+TEST_P(EGLPrintEGLinfoTest, PrintConfigInfo)
+{
+    // Get all the configs
+    EGLint count;
+    EXPECT_EGL_TRUE(eglGetConfigs(mDisplay, nullptr, 0, &count));
+    EXPECT_TRUE(count > 0);
+    std::vector<EGLConfig> configs(count);
+    EXPECT_EGL_TRUE(eglGetConfigs(mDisplay, configs.data(), count, &count));
+    configs.resize(count);
+    // sort configs by increaing ID
+    std::sort(configs.begin(), configs.end(), [this](EGLConfig a, EGLConfig b) -> bool {
+        return GetAttrib(mDisplay, a, EGL_CONFIG_ID) < GetAttrib(mDisplay, b, EGL_CONFIG_ID);
+    });
+
+    std::cout << "Configs - Count: " << count << std::endl;
+
+    // For each config, print its attributes
+    for (auto config : configs)
+    {
+        // Config ID
+        std::cout << "    Config: " << GetAttrib(mDisplay, config, EGL_CONFIG_ID) << std::endl;
+
+        // Color
+        const char *componentType = (GetAttrib(mDisplay, config, EGL_COLOR_COMPONENT_TYPE_EXT) ==
+                                     EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT)
+                                        ? "Float "
+                                        : "Fixed ";
+        const char *colorBuffType =
+            (GetAttrib(mDisplay, config, EGL_COLOR_BUFFER_TYPE) == EGL_LUMINANCE_BUFFER)
+                ? "LUMINANCE"
+                : "RGB";
+        std::cout << "\tColor:" << GetAttrib(mDisplay, config, EGL_BUFFER_SIZE) << "bit "
+                  << componentType << colorBuffType
+                  << " Red:" << GetAttrib(mDisplay, config, EGL_RED_SIZE)
+                  << " Green:" << GetAttrib(mDisplay, config, EGL_GREEN_SIZE)
+                  << " Blue:" << GetAttrib(mDisplay, config, EGL_BLUE_SIZE)
+                  << " Alpha:" << GetAttrib(mDisplay, config, EGL_ALPHA_SIZE)
+                  << " Lum:" << GetAttrib(mDisplay, config, EGL_LUMINANCE_SIZE)
+                  << " AlphaMask:" << GetAttrib(mDisplay, config, EGL_ALPHA_MASK_SIZE) << std::endl;
+
+        // Texture Binding
+        std::cout << "\tBinding RGB:" << (bool)GetAttrib(mDisplay, config, EGL_BIND_TO_TEXTURE_RGB)
+                  << " RGBA:" << (bool)GetAttrib(mDisplay, config, EGL_BIND_TO_TEXTURE_RGBA)
+                  << " MaxWidth:" << GetAttrib(mDisplay, config, EGL_MAX_PBUFFER_WIDTH)
+                  << " MaxHeight:" << GetAttrib(mDisplay, config, EGL_MAX_PBUFFER_HEIGHT)
+                  << " MaxPixels:" << GetAttrib(mDisplay, config, EGL_MAX_PBUFFER_PIXELS)
+                  << std::endl;
+
+        // Conformant
+        EGLint caveatAttrib = GetAttrib(mDisplay, config, EGL_CONFIG_CAVEAT);
+        const char *caveat  = nullptr;
+        switch (caveatAttrib)
+        {
+            case EGL_NONE:
+                caveat = "None.";
+                break;
+            case EGL_SLOW_CONFIG:
+                caveat = "Slow.";
+                break;
+            case EGL_NON_CONFORMANT_CONFIG:
+                caveat = "Non-Conformant.";
+                break;
+            default:
+                caveat = ".";
+        }
+        std::cout << "\tCaveate: " << caveat;
+
+        EGLint conformant = GetAttrib(mDisplay, config, EGL_CONFORMANT);
+        std::cout << " Conformant: ";
+        if (conformant & EGL_OPENGL_BIT)
+            std::cout << "OpenGL ";
+        if (conformant & EGL_OPENGL_ES_BIT)
+            std::cout << "ES1 ";
+        if (conformant & EGL_OPENGL_ES2_BIT)
+            std::cout << "ES2 ";
+        if (conformant & EGL_OPENGL_ES3_BIT)
+            std::cout << "ES3";
+        std::cout << std::endl;
+
+        // Ancilary buffers
+        std::cout << "\tAncilary "
+                  << "Depth:" << GetAttrib(mDisplay, config, EGL_DEPTH_SIZE)
+                  << " Stencil:" << GetAttrib(mDisplay, config, EGL_STENCIL_SIZE)
+                  << " SampleBuffs:" << GetAttrib(mDisplay, config, EGL_SAMPLE_BUFFERS)
+                  << " Samples:" << GetAttrib(mDisplay, config, EGL_SAMPLES) << std::endl;
+
+        // Swap interval
+        std::cout << "\tSwap Interval"
+                  << " Min:" << GetAttrib(mDisplay, config, EGL_MIN_SWAP_INTERVAL)
+                  << " Max:" << GetAttrib(mDisplay, config, EGL_MAX_SWAP_INTERVAL) << std::endl;
+
+        // Native
+        std::cout << "\tNative Renderable: " << GetAttrib(mDisplay, config, EGL_NATIVE_RENDERABLE)
+                  << ", VisualID: " << GetAttrib(mDisplay, config, EGL_NATIVE_VISUAL_ID)
+                  << ", VisualType: " << GetAttrib(mDisplay, config, EGL_NATIVE_VISUAL_TYPE)
+                  << std::endl;
+
+        // Surface type
+        EGLint surfaceType = GetAttrib(mDisplay, config, EGL_SURFACE_TYPE);
+        std::cout << "\tSurface Type: ";
+        if (surfaceType & EGL_WINDOW_BIT)
+            std::cout << "WINDOW ";
+        if (surfaceType & EGL_PIXMAP_BIT)
+            std::cout << "PIXMAP ";
+        if (surfaceType & EGL_PBUFFER_BIT)
+            std::cout << "PBUFFER ";
+        if (surfaceType & EGL_MULTISAMPLE_RESOLVE_BOX_BIT)
+            std::cout << "MULTISAMPLE_RESOLVE_BOX ";
+        if (surfaceType & EGL_SWAP_BEHAVIOR_PRESERVED_BIT)
+            std::cout << "SWAP_PRESERVE ";
+        std::cout << std::endl;
+
+        // Renderable
+        EGLint rendType = GetAttrib(mDisplay, config, EGL_RENDERABLE_TYPE);
+        std::cout << "\tRender: ";
+        if (rendType & EGL_OPENGL_BIT)
+            std::cout << "OpenGL ";
+        if (rendType & EGL_OPENGL_ES_BIT)
+            std::cout << "ES1 ";
+        if (rendType & EGL_OPENGL_ES2_BIT)
+            std::cout << "ES2 ";
+        if (rendType & EGL_OPENGL_ES3_BIT)
+            std::cout << "ES3 ";
+        std::cout << std::endl;
+
+        // Extensions
+        std::cout << "\tAndroid Recordable: " << GetAttrib(mDisplay, config, EGL_RECORDABLE_ANDROID)
+                  << std::endl;
+
+        // Separator between configs
+        std::cout << std::endl;
+    }
+}
+
+ANGLE_INSTANTIATE_TEST(EGLPrintEGLinfoTest, ES2_VULKAN(), ES3_VULKAN());
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLRecordableTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLRecordableTest.cpp
index 60fcc03..3d8f90d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLRecordableTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLRecordableTest.cpp
@@ -63,4 +63,4 @@
 
 }  // namespace angle
 
-ANGLE_INSTANTIATE_TEST(EGLRecordableTest, ES2_D3D11(), ES2_OPENGL(), ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(EGLRecordableTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLStreamTest.cpp b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLStreamTest.cpp
index 66021a8..3c7d7c9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLStreamTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLStreamTest.cpp
@@ -836,5 +836,5 @@
                        ES2_OPENGL(),
                        ES3_OPENGL(),
                        ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(D3D11TextureStreamSamplingTest, ES2_D3D11(), ES3_D3D11());
+ANGLE_INSTANTIATE_TEST(D3D11TextureStreamSamplingTest, ES2_D3D11(), ES3_D3D11(), ES31_D3D11());
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/AtomicCounterBufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/AtomicCounterBufferTest.cpp
index 928a30f..899eac3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/AtomicCounterBufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/AtomicCounterBufferTest.cpp
@@ -437,7 +437,10 @@
 // is with WGL where if a Vulkan test is run first in the shard, it causes crashes when an OpenGL
 // test is run afterwards.  AtomicCounter* tests are alphabetically first, and having them not run
 // on Vulkan makes every shard our bots currently make do have at least some OpenGL test run before
-// any Vulkan test.
+// any Vulkan test. When these tests can be enabled on Vulkan, can replace the current macros with
+// the updated macros below that include Vulkan:
+// ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(AtomicCounterBufferTest);
+// ANGLE_INSTANTIATE_TEST_ES31(AtomicCounterBufferTest31);
 ANGLE_INSTANTIATE_TEST(AtomicCounterBufferTest,
                        ES3_OPENGL(),
                        ES3_OPENGLES(),
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/AttributeLayoutTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/AttributeLayoutTest.cpp
index 22a5602..441a5f6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/AttributeLayoutTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/AttributeLayoutTest.cpp
@@ -473,12 +473,8 @@
     Run(false);
 }
 
-#define PARAMS                                                                         \
-    ES2_VULKAN(), ES2_OPENGL(), ES2_D3D9(), ES2_D3D11(), ES3_OPENGL(), ES2_OPENGLES(), \
-        ES3_OPENGLES(), ES3_VULKAN()
-
-ANGLE_INSTANTIATE_TEST(AttributeLayoutNonIndexed, PARAMS);
-ANGLE_INSTANTIATE_TEST(AttributeLayoutMemoryIndexed, PARAMS);
-ANGLE_INSTANTIATE_TEST(AttributeLayoutBufferIndexed, PARAMS);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(AttributeLayoutNonIndexed);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(AttributeLayoutMemoryIndexed);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(AttributeLayoutBufferIndexed);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BPTCCompressedTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
index 9d71e5a..28f42bb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
@@ -367,14 +367,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(BPTCCompressedTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(BPTCCompressedTextureTest);
 
-ANGLE_INSTANTIATE_TEST(BPTCCompressedTextureTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(BPTCCompressedTextureTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindGeneratesResourceTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindGeneratesResourceTest.cpp
index e2582eb..ab58734 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindGeneratesResourceTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindGeneratesResourceTest.cpp
@@ -110,14 +110,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(BindGeneratesResourceTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(BindGeneratesResourceTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindUniformLocationTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindUniformLocationTest.cpp
index 3fb0537..eabb2ac 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindUniformLocationTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BindUniformLocationTest.cpp
@@ -535,13 +535,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(BindUniformLocationTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(BindUniformLocationTest);
 
-ANGLE_INSTANTIATE_TEST(BindUniformLocationES31Test, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES31(BindUniformLocationES31Test);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
index f06052b..4220eb9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
@@ -707,29 +707,8 @@
     glDeleteProgram(program);
 }
 
-ANGLE_INSTANTIATE_TEST(EXTBlendFuncExtendedTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(EXTBlendFuncExtendedTestES3,
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES3_VULKAN(),
-                       ES31_VULKAN());
-ANGLE_INSTANTIATE_TEST(EXTBlendFuncExtendedDrawTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(EXTBlendFuncExtendedDrawTestES3,
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES3_VULKAN(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(EXTBlendFuncExtendedTest);
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(EXTBlendFuncExtendedTestES3);
+
+ANGLE_INSTANTIATE_TEST_ES2(EXTBlendFuncExtendedDrawTest);
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(EXTBlendFuncExtendedDrawTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendMinMaxTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendMinMaxTest.cpp
index a2f01bc..a01389e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendMinMaxTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendMinMaxTest.cpp
@@ -102,7 +102,16 @@
                 {
                     EXPECT_NEAR(
                         getExpected(blendMin, color.values[componentIdx], prevColor[componentIdx]),
-                        pixel[componentIdx], errorRange);
+                        pixel[componentIdx], errorRange)
+                        << " blendMin=" << blendMin << " componentIdx=" << componentIdx << std::endl
+                        << " color.values[0]=" << color.values[0]
+                        << " prevColor[0]=" << prevColor[0] << std::endl
+                        << " color.values[1]=" << color.values[1]
+                        << " prevColor[1]=" << prevColor[1] << std::endl
+                        << " color.values[2]=" << color.values[2]
+                        << " prevColor[2]=" << prevColor[2] << std::endl
+                        << " color.values[3]=" << color.values[3]
+                        << " prevColor[3]=" << prevColor[3];
                 }
             }
 
@@ -181,18 +190,12 @@
 {
     ANGLE_SKIP_TEST_IF(getClientMajorVersion() < 3 &&
                        !IsGLExtensionEnabled("GL_EXT_color_buffer_half_float"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
 
     runTest(GL_RGBA16F, GL_FLOAT);
 }
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(BlendMinMaxTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(BlendMinMaxTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
index a4158ff..4f0d60e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
@@ -1223,6 +1223,9 @@
     // clearDepth && !maskDepth fails on Intel Ubuntu 19.04 Mesa 19.0.2 GL. http://anglebug.com/3614
     ANGLE_SKIP_TEST_IF(IsLinux() && IsIntel() && IsDesktopOpenGL());
 
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
+
     GLRenderbuffer depthMS;
     glBindRenderbuffer(GL_RENDERBUFFER, depthMS.get());
     glRenderbufferStorageMultisample(GL_RENDERBUFFER, 2, GL_DEPTH_COMPONENT24, 256, 256);
@@ -2000,4 +2003,4 @@
                        ES2_VULKAN(),
                        ES3_VULKAN());
 
-ANGLE_INSTANTIATE_TEST(BlitFramebufferTest, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(BlitFramebufferTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BufferDataTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BufferDataTest.cpp
index 3e63fca..9a6782b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BufferDataTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BufferDataTest.cpp
@@ -292,6 +292,8 @@
 // https://code.google.com/p/angleproject/issues/detail?id=709
 TEST_P(IndexedBufferCopyTest, IndexRangeBug)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(geofflang): Figure out why this fails on AMD OpenGL (http://anglebug.com/1291)
     ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL());
 
@@ -538,18 +540,9 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(BufferDataTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(BufferDataTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(IndexedBufferCopyTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(BufferDataTest);
+ANGLE_INSTANTIATE_TEST_ES3(BufferDataTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(IndexedBufferCopyTest);
 
 #ifdef _WIN64
 
@@ -568,6 +561,8 @@
 {
     // http://anglebug.com/3786: flaky timeout on Win10 FYI x64 Release (NVIDIA GeForce GTX 1660)
     ANGLE_SKIP_TEST_IF(IsWindows() && IsNVIDIA() && IsD3D11());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && (IsVulkan() || IsOpenGL()));
 
     // These values are special, to trigger the rounding bug.
     unsigned int numItems       = 0x7FFFFFE;
@@ -666,6 +661,6 @@
     EXPECT_GL_ERROR(GL_INVALID_VALUE);
 }
 
-ANGLE_INSTANTIATE_TEST(BufferDataOverflowTest, ES3_D3D11());
+ANGLE_INSTANTIATE_TEST_ES3(BufferDataOverflowTest);
 
 #endif  // _WIN64
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BuiltinVariableTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BuiltinVariableTest.cpp
index 36932fd..da4764d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/BuiltinVariableTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/BuiltinVariableTest.cpp
@@ -195,11 +195,7 @@
     runTest(GL_TRIANGLES, indices, 6);
 }
 
-ANGLE_INSTANTIATE_TEST(BuiltinVariableVertexIdTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(BuiltinVariableVertexIdTest);
 
 class BuiltinVariableFragDepthClampingFloatRBOTest : public ANGLETest
 {
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cpp
index fd37167..17f5874 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cpp
@@ -622,6 +622,8 @@
 // clears to the correct values.
 TEST_P(ClearTestES3, ClearMultipleAttachmentsFollowedBySpecificOne)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr uint32_t kSize            = 16;
     constexpr uint32_t kAttachmentCount = 5;
     std::vector<unsigned char> pixelData(kSize * kSize * 4, 255);
@@ -1461,17 +1463,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ClearTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(ClearTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ClearTest);
+ANGLE_INSTANTIATE_TEST_ES3(ClearTestES3);
 ANGLE_INSTANTIATE_TEST_COMBINE_4(MaskedScissoredClearTest,
                                  MaskedScissoredClearVariationsTestPrint,
                                  testing::Range(0, 3),
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClientArraysTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClientArraysTest.cpp
index 7820731..18b8a66 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClientArraysTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ClientArraysTest.cpp
@@ -108,13 +108,5 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ClientArraysTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ClientArraysTest);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ColorMaskTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ColorMaskTest.cpp
index 6075cf6..6f76089 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ColorMaskTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ColorMaskTest.cpp
@@ -73,13 +73,6 @@
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against. D3D11 Feature Level 9_3 uses different D3D formats for vertex
 // attribs compared to Feature Levels 10_0+, so we should test them separately.
-ANGLE_INSTANTIATE_TEST(ColorMaskTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ColorMaskTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
index 48f2d99..11f9881 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
@@ -872,6 +872,8 @@
 // Test that texelFetch works well in compute shader.
 TEST_P(ComputeShaderTest, TexelFetchFunction)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kCS[] = R"(#version 310 es
 layout(local_size_x=16, local_size_y=16) in;
 precision highp usampler2D;
@@ -940,6 +942,8 @@
 // Test that texture function works well in compute shader.
 TEST_P(ComputeShaderTest, TextureFunction)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kCS[] = R"(#version 310 es
 layout(local_size_x=16, local_size_y=16) in;
 precision highp usampler2D;
@@ -2694,6 +2698,11 @@
     // http://anglebug.com/3869
     ANGLE_SKIP_TEST_IF(IsVulkan());
 
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
+    ANGLE_SKIP_TEST_IF(IsOpenGL() &&
+                       ((getClientMajorVersion() == 3) && (getClientMinorVersion() >= 1)));
+
     const char kCSShader[] = R"(#version 310 es
 layout (local_size_x = 4, local_size_y = 4, local_size_z = 1) in;
 layout (r32ui, binding = 0) readonly uniform highp uimage2D srcImage;
@@ -2736,8 +2745,6 @@
 {
     // glReadPixels is getting the result of the first dispatch call.  http://anglebug.com/3879
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsWindows() && (IsAMD() || IsNVIDIA()));
-    // Flaky on Linux FYI Release (Intel HD 630).  http://anglebug.com/3934
-    ANGLE_SKIP_TEST_IF(IsVulkan() && IsLinux() && IsIntel());
 
     GLTexture texture[2];
     GLFramebuffer framebuffer;
@@ -2810,6 +2817,8 @@
 // Test storage buffer bound is unchanged, shader writes it, buffer content should be updated.
 TEST_P(ComputeShaderTest, StorageBufferBoundUnchanged)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kCS[] = R"(#version 310 es
 layout(local_size_x=16, local_size_y=16) in;
 precision highp usampler2D;
@@ -3012,9 +3021,6 @@
     // TODO(xinghua.cao@intel.com): http://anglebug.com/3101
     ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux() && IsOpenGL());
 
-    // Non-zero-level render target attachments are not yet supported.  http://anglebug.com/3184
-    ANGLE_SKIP_TEST_IF(IsVulkan());
-
     GLTexture texture[2];
     GLFramebuffer framebuffer;
     constexpr char kCS[] = R"(#version 310 es
@@ -3513,11 +3519,151 @@
     glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
 }
 
-ANGLE_INSTANTIATE_TEST(ComputeShaderTest,
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_D3D11(),
-                       ES31_VULKAN());
-ANGLE_INSTANTIATE_TEST(ComputeShaderTestES3, ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(WebGL2ComputeTest, ES31_D3D11(), ES31_VULKAN());
+// Test that render pipeline and compute pipeline access to the same texture.
+// Steps:
+//   1. Clear the texture and DrawArrays.
+//   2. DispatchCompute to set the image's first pixel to a specific color.
+//   3. DrawArrays and check data.
+TEST_P(ComputeShaderTest, DrawDispatchDrawPreserve)
+{
+    const char kCSSource[] = R"(#version 310 es
+layout(local_size_x=1, local_size_y=1) in;
+layout(rgba8, binding = 0) writeonly uniform highp image2D image;
+void main()
+{
+    imageStore(image, ivec2(0, 0), vec4(0.0, 0.0, 1.0, 1.0));
+})";
+
+    const char kVSSource[] = R"(#version 310 es
+layout (location = 0) in vec2 pos;
+in vec4 inTex;
+out vec4 texCoord;
+void main(void) {
+    texCoord = inTex;
+    gl_Position = vec4(pos, 0.0, 1.0);
+})";
+
+    const char kFSSource[] = R"(#version 310 es
+precision highp float;
+uniform sampler2D tex;
+in vec4 texCoord;
+out vec4 fragColor;
+void main(void) {
+    fragColor = texture(tex, texCoord.xy);
+})";
+    GLuint aPosLoc         = 0;
+    ANGLE_GL_PROGRAM(program, kVSSource, kFSSource);
+    glBindAttribLocation(program, aPosLoc, "pos");
+
+    unsigned char *data = new unsigned char[4 * getWindowWidth() * getWindowHeight()];
+    for (int i = 0; i < getWindowWidth() * getWindowHeight(); i++)
+    {
+        data[i * 4]     = 0xff;
+        data[i * 4 + 1] = 0;
+        data[i * 4 + 2] = 0;
+        data[i * 4 + 3] = 0xff;
+    }
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexStorage2D(GL_TEXTURE_2D, 2, GL_RGBA8, getWindowWidth(), getWindowHeight());
+    // Clear the texture level 0 to Red.
+    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, getWindowWidth(), getWindowHeight(), GL_RGBA,
+                    GL_UNSIGNED_BYTE, data);
+    for (int i = 0; i < getWindowWidth() * getWindowHeight(); i++)
+    {
+        data[i * 4]     = 0;
+        data[i * 4 + 1] = 0xff;
+        data[i * 4 + 2] = 0;
+        data[i * 4 + 3] = 0xff;
+    }
+    // Clear the texture level 1 to Green.
+    glTexSubImage2D(GL_TEXTURE_2D, 1, 0, 0, getWindowWidth() / 2, getWindowHeight() / 2, GL_RGBA,
+                    GL_UNSIGNED_BYTE, data);
+    delete[] data;
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glUseProgram(program);
+    GLfloat vertices[]  = {-1, -1, 1, -1, -1, 1, 1, 1};
+    GLfloat texCoords[] = {0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f};
+    GLint pos           = glGetAttribLocation(program, "pos");
+    glEnableVertexAttribArray(pos);
+    glVertexAttribPointer(pos, 2, GL_FLOAT, GL_FALSE, 0, vertices);
+    GLint posTex = glGetAttribLocation(program, "inTex");
+    glEnableVertexAttribArray(posTex);
+    glVertexAttribPointer(posTex, 2, GL_FLOAT, GL_FALSE, 0, texCoords);
+
+    // Draw with level 0, the whole frame buffer should be Red.
+    glViewport(0, 0, getWindowWidth(), getWindowHeight());
+    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+    EXPECT_GL_NO_ERROR();
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::red);
+    // Draw with level 1, the whole frame buffer should be Green.
+    glViewport(0, 0, getWindowWidth() / 2, getWindowHeight() / 2);
+    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() / 2 - 1, getWindowHeight() / 2 - 1, GLColor::green);
+
+    // Clear the texture level 0's (0, 0) position to Blue.
+    glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA8);
+    ANGLE_GL_COMPUTE_PROGRAM(csProgram, kCSSource);
+    glUseProgram(csProgram);
+    glDispatchCompute(1, 1, 1);
+    glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
+    EXPECT_GL_NO_ERROR();
+    glFinish();
+
+    glUseProgram(program);
+    // Draw with level 0, the first position should be Blue.
+    glViewport(0, 0, getWindowWidth(), getWindowHeight());
+    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::blue);
+    EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::red);
+    // Draw with level 1, the whole frame buffer should be Green.
+    glViewport(0, 0, getWindowWidth() / 2, getWindowHeight() / 2);
+    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::green);
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() / 2 - 1, getWindowHeight() / 2 - 1, GLColor::green);
+}
+
+// Test that maxComputeWorkGroupCount is valid number.
+TEST_P(ComputeShaderTest, ValidateMaxComputeWorkGroupCount)
+{
+    constexpr char kCS[] = R"(#version 310 es
+layout(local_size_x=1) in;
+void main()
+{
+})";
+
+    GLuint program = glCreateProgram();
+    GLuint cs      = CompileShader(GL_COMPUTE_SHADER, kCS);
+    EXPECT_NE(0u, cs);
+
+    glAttachShader(program, cs);
+    glDeleteShader(cs);
+
+    GLint x, y, z;
+    glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 0, &x);
+    EXPECT_LE(65535, x);
+    EXPECT_GE(std::numeric_limits<GLint>::max(), x);
+
+    glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 1, &y);
+    EXPECT_LE(65535, y);
+    EXPECT_GE(std::numeric_limits<GLint>::max(), y);
+
+    glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 2, &z);
+    EXPECT_LE(65535, z);
+    EXPECT_GE(std::numeric_limits<GLint>::max(), z);
+
+    glDeleteProgram(program);
+    EXPECT_GL_NO_ERROR();
+}
+
+ANGLE_INSTANTIATE_TEST_ES31(ComputeShaderTest);
+ANGLE_INSTANTIATE_TEST_ES3(ComputeShaderTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(WebGL2ComputeTest);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyCompressedTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyCompressedTextureTest.cpp
index 6206697..a3c4b21 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyCompressedTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyCompressedTextureTest.cpp
@@ -319,6 +319,8 @@
     {
         return;
     }
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
 
     glBindTexture(GL_TEXTURE_2D, mTextures[0]);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -343,14 +345,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(CopyCompressedTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(CopyCompressedTextureTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
index fad1c33..d58748e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexImageTest.cpp
@@ -428,6 +428,9 @@
 // Calling CopyTexSubImage to a non-cube-complete texture.
 TEST_P(CopyTexImageTest, CopyTexSubImageToNonCubeCompleteDestination)
 {
+    // TODO(hqle): Find what wrong with NVIDIA GPU. http://anglebug.com/4137
+    ANGLE_SKIP_TEST_IF(IsNVIDIA() && IsMetal());
+
     constexpr GLsizei kCubeMapFaceCount = 6;
 
     // The framebuffer will be a 1x6 image with 6 different colors.  Each glCopyTexSubImage2D will
@@ -809,9 +812,5 @@
                        ES2_VULKAN(),
                        ES3_VULKAN());
 
-ANGLE_INSTANTIATE_TEST(CopyTexImageTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(CopyTexImageTestES3);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexture3DTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexture3DTest.cpp
index f8ca1bf..e4a7084 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexture3DTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTexture3DTest.cpp
@@ -1726,7 +1726,7 @@
              GL_UNSIGNED_INT_2_10_10_10_REV, false, false, true, GLColor(255, 214, 81, 3));
 }
 
-ANGLE_INSTANTIATE_TEST(Texture3DCopy, ES3_D3D11());
-ANGLE_INSTANTIATE_TEST(Texture2DArrayCopy, ES3_D3D11());
+ANGLE_INSTANTIATE_TEST_ES3(Texture3DCopy);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DArrayCopy);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
index c9a619f..7d4d86d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CopyTextureTest.cpp
@@ -867,6 +867,8 @@
 
 TEST_P(CopyTextureVariationsTest, CopyTexture)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     testCopyTexture(GL_TEXTURE_2D, std::get<1>(GetParam()), std::get<2>(GetParam()),
                     std::get<3>(GetParam()), std::get<4>(GetParam()), std::get<5>(GetParam()));
 }
@@ -1562,6 +1564,8 @@
 // are set to 0.
 TEST_P(CopyTextureTestDest, AlphaCopyWithRGB)
 {
+    // http://anglebug.com/4121
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux() && IsOpenGLES());
     ANGLE_SKIP_TEST_IF(!checkExtensions());
 
     GLColor originalPixels(50u, 100u, 150u, 155u);
@@ -1587,6 +1591,62 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, expectedPixels);
 }
 
+// Bug where TEXTURE_SWIZZLE_RGBA was not reset after the Luminance workaround. (crbug.com/1022080)
+TEST_P(CopyTextureTestES3, LuminanceWorkaroundTextureSwizzleBug)
+{
+
+    {
+        GLColor pixels(50u, 20u, 100u, 150u);
+
+        // Hit BlitGL::copySubImageToLUMAWorkaroundTexture by copying an ALPHA texture
+        GLTexture srcTexture;
+        glBindTexture(GL_TEXTURE_2D, srcTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, &pixels);
+
+        GLFramebuffer srcFBO;
+        glBindFramebuffer(GL_FRAMEBUFFER, srcFBO);
+        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, srcTexture, 0);
+
+        GLTexture dstTexture;
+        glBindTexture(GL_TEXTURE_2D, dstTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 1, 1, 0, GL_ALPHA, GL_UNSIGNED_BYTE, nullptr);
+
+        glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, 1, 1);
+        EXPECT_GL_NO_ERROR();
+    }
+
+    {
+        // This time hit BlitGL::blitColorBufferWithShader by copying an SRGB texture
+        GLColor pixels(100u, 200u, 50u, 210u);
+
+        GLTexture srcTexture;
+        glBindTexture(GL_TEXTURE_2D, srcTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB_ALPHA_EXT, 1, 1, 0, GL_SRGB_ALPHA_EXT,
+                     GL_UNSIGNED_BYTE, &pixels);
+
+        GLFramebuffer srcFBO;
+        glBindFramebuffer(GL_READ_FRAMEBUFFER, srcFBO);
+        glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, srcTexture,
+                               0);
+
+        GLTexture dstTexture;
+        glBindTexture(GL_TEXTURE_2D, dstTexture);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB_ALPHA_EXT, 1, 1, 0, GL_SRGB_ALPHA_EXT,
+                     GL_UNSIGNED_BYTE, nullptr);
+
+        GLFramebuffer dstFBO;
+        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, dstFBO);
+        glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dstTexture,
+                               0);
+
+        glBlitFramebuffer(0, 0, 1, 1, 0, 0, 1, 1, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+
+        // The previous workaround should not affect this copy
+        glBindFramebuffer(GL_FRAMEBUFFER, dstFBO);
+        EXPECT_PIXEL_COLOR_EQ(0, 0, pixels);
+    }
+}
+
 // Test to ensure that CopyTexture will fail with a non-zero level and NPOT texture in WebGL
 TEST_P(CopyTextureTestWebGL, NPOT)
 {
@@ -1623,6 +1683,8 @@
     {
         return;
     }
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() || IsVulkan());
 
     auto testOutput = [this](GLuint texture, const GLColor &expectedColor) {
         constexpr char kVS[] =
@@ -1760,6 +1822,8 @@
     }
 
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_color_buffer_float"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     auto testOutput = [this](GLuint texture, const GLColor32F &expectedColor) {
         constexpr char kVS[] =
@@ -1875,6 +1939,8 @@
 TEST_P(CopyTextureTestES3, ES3UintFormats)
 {
     ANGLE_SKIP_TEST_IF(IsLinux() && IsOpenGL() && IsIntel());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     if (!checkExtensions())
     {
@@ -1991,12 +2057,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(CopyTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(CopyTextureTest);
 ANGLE_INSTANTIATE_TEST_COMBINE_5(CopyTextureVariationsTest,
                                  CopyTextureVariationsTestPrint,
                                  testing::ValuesIn(kCopyTextureVariationsSrcFormats),
@@ -2009,13 +2070,12 @@
                                  ES2_OPENGL(),
                                  ES2_OPENGLES(),
                                  ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(CopyTextureTestWebGL,
-                       ES2_D3D9(),
+ANGLE_INSTANTIATE_TEST_ES2(CopyTextureTestWebGL);
+ANGLE_INSTANTIATE_TEST(CopyTextureTestDest,
                        ES2_D3D11(),
                        ES2_OPENGL(),
                        ES2_OPENGLES(),
                        ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(CopyTextureTestDest, ES2_D3D11());
-ANGLE_INSTANTIATE_TEST(CopyTextureTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(CopyTextureTestES3);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CubeMapTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CubeMapTextureTest.cpp
index a0f5a44..2030144 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/CubeMapTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/CubeMapTextureTest.cpp
@@ -62,6 +62,9 @@
     // http://anglebug.com/3145
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsIntel() && IsFuchsia());
 
+    // TODO(hqle): Find what wrong with NVIDIA GPU. http://anglebug.com/4138
+    ANGLE_SKIP_TEST_IF(IsNVIDIA() && IsMetal());
+
     const GLfloat faceColors[] = {
         1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
         1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
@@ -230,6 +233,8 @@
 // within each face.  See section 3.7.5 of GLES2.0 (Cube Map Texture Selection).
 TEST_P(CubeMapTextureTest, SampleCoordinateTransform)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && IsD3D9());
     // Create a program that samples from 6x4 directions of the cubemap, draw and verify that the
     // colors match the right color from |faceColors|.
     constexpr char kFS[] = R"(precision mediump float;
@@ -274,6 +279,8 @@
     ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());  // anglebug.com/3814
     ANGLE_SKIP_TEST_IF(IsD3D11());                  // anglebug.com/3856
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_shader_texture_lod"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && IsD3D9());
 
     constexpr char kFS[] = R"(#extension GL_EXT_shader_texture_lod : require
 precision mediump float;
@@ -315,11 +322,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(CubeMapTextureTest,
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(CubeMapTextureTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
index 7c4ec33..c96124f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
@@ -187,6 +187,6 @@
     SafeDelete(cleanSourceBuffer);
 }
 
-ANGLE_INSTANTIATE_TEST(D3D11EmulatedIndexedBufferTest, ES2_D3D11());
+ANGLE_INSTANTIATE_TEST(D3D11EmulatedIndexedBufferTest, ES2_D3D11(), ES3_D3D11(), ES31_D3D11());
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11InputLayoutCacheTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11InputLayoutCacheTest.cpp
index bca7830..42a9bf9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11InputLayoutCacheTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3D11InputLayoutCacheTest.cpp
@@ -121,6 +121,6 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(D3D11InputLayoutCacheTest, ES2_D3D11());
+ANGLE_INSTANTIATE_TEST(D3D11InputLayoutCacheTest, ES2_D3D11(), ES3_D3D11(), ES31_D3D11());
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DImageFormatConversionTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
index 5ca24c7..6404add 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
@@ -159,10 +159,6 @@
 // imageformats.h from the D3D renderer), we can still run the test against OpenGL. This is
 // valuable, since it provides extra validation using a renderer that doesn't use imageformats.h
 // itself.
-ANGLE_INSTANTIATE_TEST(D3DImageFormatConversionTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(D3DImageFormatConversionTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DTextureTest.cpp
index 5f31fd1..8142182 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/D3DTextureTest.cpp
@@ -1438,8 +1438,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(D3DTextureTest, ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(D3DTextureTestES3, ES3_D3D11(), ES3_OPENGL());
+ANGLE_INSTANTIATE_TEST_ES2(D3DTextureTest);
+ANGLE_INSTANTIATE_TEST_ES3(D3DTextureTestES3);
 // D3D Debug device reports an error. http://anglebug.com/3513
 // ANGLE_INSTANTIATE_TEST(D3DTextureTestMS, ES2_D3D11());
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXT1CompressedTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
index be85ef2..4278488 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
@@ -412,15 +412,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DXT1CompressedTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DXT1CompressedTextureTest);
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DXT1CompressedTextureTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(DXT1CompressedTextureTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
index 86c2abb..4d3b9db 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
@@ -147,11 +147,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DXTSRGBCompressedTextureTest,
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DXTSRGBCompressedTextureTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugMarkerTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugMarkerTest.cpp
index 009d3c0..263c607 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugMarkerTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugMarkerTest.cpp
@@ -63,11 +63,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DebugMarkerTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(DebugMarkerTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
index 39d295b..df17cf9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
@@ -403,12 +403,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DebugTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DebugTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp
index e8bb3e1..c5c1207 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp
@@ -737,13 +737,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DepthStencilFormatsTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(DepthStencilFormatsTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2(DepthStencilFormatsTest);
+ANGLE_INSTANTIATE_TEST_ES3(DepthStencilFormatsTestES3);
 
 class TinyDepthStencilWorkaroundTest : public ANGLETest
 {
@@ -769,6 +764,9 @@
 // http://anglebug.com/1664
 TEST_P(TinyDepthStencilWorkaroundTest, DepthTexturesStick)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsOpenGLES()) || (IsLinux() && IsVulkan()));
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kDrawVS[] =
         "#version 100\n"
         "attribute vec3 vertex;\n"
@@ -873,4 +871,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(TinyDepthStencilWorkaroundTest, ES3_D3D11());
+ANGLE_INSTANTIATE_TEST_ES3(TinyDepthStencilWorkaroundTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilTest.cpp
index 96bcc58..49451d3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilTest.cpp
@@ -244,19 +244,13 @@
 // Tests that clearing or rendering into a stencil-only format doesn't affect depth.
 TEST_P(DepthStencilTest, StencilOnlyEmulatedWithPacked)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && IsD3D9());
     bindColorStencilFBO();
     prepareSingleEmulatedWithPacked();
     ensureDepthUnaffected();
 }
 
-ANGLE_INSTANTIATE_TEST(DepthStencilTest,
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DepthStencilTest);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DifferentStencilMasksTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DifferentStencilMasksTest.cpp
index 57de47c..b07a5f5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DifferentStencilMasksTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DifferentStencilMasksTest.cpp
@@ -67,6 +67,9 @@
 // Tests that effectively different front and back masks are illegal.
 TEST_P(DifferentStencilMasksTest, DrawWithDifferentMask)
 {
+    // TODO(hqle): Make this test work for Metal. http://anglebug.com/4134
+    ANGLE_SKIP_TEST_IF(IsMetal());
+
     glStencilMaskSeparate(GL_FRONT, 0x0001);
     glStencilMaskSeparate(GL_BACK, 0x0002);
 
@@ -100,11 +103,5 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DifferentStencilMasksTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DifferentStencilMasksTest);
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DiscardFramebufferEXTTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DiscardFramebufferEXTTest.cpp
index 78b6eba..497fc8b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DiscardFramebufferEXTTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DiscardFramebufferEXTTest.cpp
@@ -26,7 +26,10 @@
 
 TEST_P(DiscardFramebufferEXTTest, DefaultFramebuffer)
 {
-    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("EXT_discard_framebuffer"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_discard_framebuffer"));
+
+    // TODO: fix crash issue. http://anglebug.com/4141
+    ANGLE_SKIP_TEST_IF(IsD3D11());
 
     // These should succeed on the default framebuffer
     const GLenum discards1[] = {GL_COLOR_EXT};
@@ -61,7 +64,7 @@
 
 TEST_P(DiscardFramebufferEXTTest, NonDefaultFramebuffer)
 {
-    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("EXT_discard_framebuffer"));
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_discard_framebuffer"));
 
     GLuint tex2D;
     GLuint framebuffer;
@@ -112,11 +115,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DiscardFramebufferEXTTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DiscardFramebufferEXTTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
index f39de9f..abf6e3b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp
@@ -318,9 +318,9 @@
         {
             baseInstances[i] = i * 2;
         }
-        glMultiDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, drawCount, counts.data(),
-                                                    instanceCounts.data(), firsts.data(),
-                                                    baseInstances.data());
+        glMultiDrawArraysInstancedBaseInstanceANGLE(GL_TRIANGLES, firsts.data(), counts.data(),
+                                                    instanceCounts.data(), baseInstances.data(),
+                                                    drawCount);
     }
 
     void doDrawElementsInstancedBaseVertexBaseInstance()
@@ -378,8 +378,8 @@
         }
 
         glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(
-            GL_TRIANGLES, GL_UNSIGNED_SHORT, drawCount, counts.data(), instanceCounts.data(),
-            indices.data(), baseVertices.data(), baseInstances.data());
+            GL_TRIANGLES, counts.data(), GL_UNSIGNED_SHORT, indices.data(), instanceCounts.data(),
+            baseVertices.data(), baseInstances.data(), drawCount);
     }
 
     void checkDrawResult(bool hasBaseVertex, bool oneColumn = false)
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBuffersTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBuffersTest.cpp
index 5011602..ac9e419 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBuffersTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawBuffersTest.cpp
@@ -641,16 +641,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(DrawBuffersTest,
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(DrawBuffersTest);
 
-ANGLE_INSTANTIATE_TEST(DrawBuffersWebGL2Test, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(DrawBuffersWebGL2Test);
 
-ANGLE_INSTANTIATE_TEST(DrawBuffersTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(DrawBuffersTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawElementsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawElementsTest.cpp
index 9705813..f642c3f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawElementsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/DrawElementsTest.cpp
@@ -111,6 +111,8 @@
 // deleting the applied index buffer.
 TEST_P(DrawElementsTest, DeletingAfterStreamingIndexes)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && IsD3D11());
     // Init program
     constexpr char kVS[] =
         "attribute vec2 position;\n"
@@ -311,6 +313,6 @@
     EXPECT_GL_ERROR(GL_INVALID_OPERATION);
 }
 
-ANGLE_INSTANTIATE_TEST(DrawElementsTest, ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(WebGLDrawElementsTest, ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(DrawElementsTest);
+ANGLE_INSTANTIATE_TEST_ES2(WebGLDrawElementsTest);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ETCTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ETCTextureTest.cpp
index 0596ebb..39a3faf 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ETCTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ETCTextureTest.cpp
@@ -253,11 +253,5 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(ETCTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ETCTextureTest);
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ExplicitContextTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ExplicitContextTest.cpp
index f1cb10d..5e02d6e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ExplicitContextTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ExplicitContextTest.cpp
@@ -87,11 +87,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ExplicitContextTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(ExplicitContextTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FenceSyncTests.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FenceSyncTests.cpp
index b201ddc..e45afb3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FenceSyncTests.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FenceSyncTests.cpp
@@ -261,13 +261,5 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(FenceNVTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(FenceSyncTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(FenceNVTest);
+ANGLE_INSTANTIATE_TEST_ES3(FenceSyncTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
index 40727a7..b4609fd 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
@@ -266,8 +266,4 @@
     EXPECT_EQ(0, memcmp(results[0].get(), results[2].get(), kResultSize));
 }
 
-ANGLE_INSTANTIATE_TEST(CHROMIUMFramebufferMixedSamplesTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(CHROMIUMFramebufferMixedSamplesTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
index b6aa154..6f442fc 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
@@ -53,6 +53,8 @@
 // when using a non-zero level in glFramebufferTexture2D.
 TEST_P(FramebufferRenderMipmapTest, Validation)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     bool renderToMipmapSupported =
         IsGLExtensionEnabled("GL_OES_fbo_render_mipmap") || getClientMajorVersion() > 2;
 
@@ -155,12 +157,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(FramebufferRenderMipmapTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(FramebufferRenderMipmapTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
index ad483fd..9ba0571 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
@@ -364,16 +364,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(FramebufferFormatsTest,
-                       ES2_VULKAN(),
-                       ES3_VULKAN(),
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(FramebufferFormatsTest);
 
 class FramebufferTest_ES3 : public ANGLETest
 {};
@@ -827,11 +818,7 @@
     EXPECT_PIXEL_COLOR_EQ(getWindowWidth() - 1, getWindowHeight() - 1, GLColor::green);
 }
 
-ANGLE_INSTANTIATE_TEST(FramebufferTest_ES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(FramebufferTest_ES3);
 
 class FramebufferTest_ES31 : public ANGLETest
 {
@@ -1003,6 +990,8 @@
     ANGLE_SKIP_TEST_IF(IsLinux() && IsAMD() && IsDesktopOpenGL());
     // Occlusion query reports fragments outside the render area are still rendered
     ANGLE_SKIP_TEST_IF(IsAndroid() || (IsWindows() && (IsIntel() || IsAMD())));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
 
     constexpr char kVS1[] = R"(#version 310 es
 in layout(location = 0) highp vec2 a_position;
@@ -1112,11 +1101,7 @@
     ASSERT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(FramebufferTest_ES31,
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(FramebufferTest_ES31);
 
 class AddDummyTextureNoRenderTargetTest : public ANGLETest
 {
@@ -1152,4 +1137,4 @@
     ASSERT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(AddDummyTextureNoRenderTargetTest, ES2_D3D11());
+ANGLE_INSTANTIATE_TEST_ES2(AddDummyTextureNoRenderTargetTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
index e9bef54..27be509 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
@@ -703,6 +703,8 @@
 // Draw an array of points with the first vertex offset at 0 using gl_VertexID
 TEST_P(GLSLTest_ES3, GLVertexIDOffsetZeroDrawArray)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr int kStartIndex  = 0;
     constexpr int kArrayLength = 5;
     constexpr char kVS[]       = R"(#version 300 es
@@ -765,6 +767,8 @@
 // https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/rendering/vertex-id.html
 TEST_P(GLSLTest_ES3, GLVertexIDIntegerTextureDrawArrays)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // Have to set a large point size because the window size is much larger than the texture
     constexpr char kVS[] = R"(#version 300 es
 flat out highp int vVertexID;
@@ -820,6 +824,8 @@
 // Draw an array of points with the first vertex offset at 5 using gl_VertexID
 TEST_P(GLSLTest_ES3, GLVertexIDOffsetFiveDrawArray)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // Bug in Nexus drivers, offset does not work. (anglebug.com/3264)
     ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsOpenGLES());
 
@@ -6130,6 +6136,8 @@
 
     // AMD's OpenGL drivers may have the same issue. http://anglebug.com/1643
     ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsOpenGL());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
 
     constexpr char kPointCoordVS[] = R"(attribute vec2 position;
 uniform vec2 viewportSize;
@@ -6153,6 +6161,7 @@
                 static_cast<GLfloat>(getWindowHeight()));
 
     // Draw to backbuffer.
+    glClear(GL_COLOR_BUFFER_BIT);
     glDrawArrays(GL_POINTS, 0, 1);
     ASSERT_GL_NO_ERROR();
 
@@ -6172,6 +6181,7 @@
     ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
 
     // Draw to user FBO.
+    glClear(GL_COLOR_BUFFER_BIT);
     glDrawArrays(GL_POINTS, 0, 1);
     ASSERT_GL_NO_ERROR();
 
@@ -7266,6 +7276,30 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
 }
 
+// Test that dynamic indexing of swizzled l-values should work.
+// A simple porting of sdk/tests/conformance2/glsl3/vector-dynamic-indexing-swizzled-lvalue.html
+TEST_P(GLSLTest_ES3, DynamicIndexingOfSwizzledLValuesShouldWork)
+{
+    // The shader first assigns v.x to v.z (1.0)
+    // Then v.y to v.y (2.0)
+    // Then v.z to v.x (1.0)
+    constexpr char kFS[] = R"(#version 300 es
+precision highp float;
+out vec4 my_FragColor;
+void main() {
+    vec3 v = vec3(1.0, 2.0, 3.0);
+    for (int i = 0; i < 3; i++) {
+        v.zyx[i] = v[i];
+    }
+    my_FragColor = distance(v, vec3(1.0, 2.0, 1.0)) < 0.01 ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);
+})";
+
+    ANGLE_GL_PROGRAM(program, essl3_shaders::vs::Simple(), kFS);
+    EXPECT_GL_NO_ERROR();
+    drawQuad(program, essl3_shaders::PositionAttrib(), 0.5f);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+}
+
 // Test that multiple nested assignments are handled correctly.
 TEST_P(GLSLTest_ES31, MixedRowAndColumnMajorMatrices_WriteSideEffect)
 {
@@ -7415,28 +7449,14 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(GLSLTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(GLSLTest);
 
-ANGLE_INSTANTIATE_TEST(GLSLTestNoValidation,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(GLSLTestNoValidation);
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(GLSLTest_ES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(GLSLTest_ES3);
 
-ANGLE_INSTANTIATE_TEST(WebGLGLSLTest, ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(WebGLGLSLTest);
 
-ANGLE_INSTANTIATE_TEST(GLSLTest_ES31, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES(), ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(GLSLTest_ES31);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GeometryShaderTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GeometryShaderTest.cpp
index 6d31309..a753672 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GeometryShaderTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GeometryShaderTest.cpp
@@ -819,6 +819,6 @@
     EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, status);
 }
 
-ANGLE_INSTANTIATE_TEST(GeometryShaderTestES3, ES3_OPENGL(), ES3_OPENGLES(), ES3_D3D11());
-ANGLE_INSTANTIATE_TEST(GeometryShaderTest, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST_ES3(GeometryShaderTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(GeometryShaderTest);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/GetImageTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GetImageTest.cpp
new file mode 100644
index 0000000..e919482
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/GetImageTest.cpp
@@ -0,0 +1,297 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// GetImageTest:
+//   Tests for the ANGLE_get_image extension.
+//
+
+#include "test_utils/ANGLETest.h"
+#include "test_utils/gl_raii.h"
+
+using namespace angle;
+
+namespace
+{
+constexpr uint32_t kSize        = 32;
+constexpr char kExtensionName[] = "GL_ANGLE_get_image";
+constexpr uint32_t kSmallSize   = 2;
+
+class GetImageTest : public ANGLETest
+{
+  public:
+    GetImageTest()
+    {
+        setWindowWidth(kSize);
+        setWindowHeight(kSize);
+        setConfigRedBits(8);
+        setConfigGreenBits(8);
+        setConfigBlueBits(8);
+        setConfigAlphaBits(8);
+    }
+};
+
+class GetImageTestNoExtensions : public ANGLETest
+{
+  public:
+    GetImageTestNoExtensions() { setExtensionsEnabled(false); }
+};
+
+GLTexture InitTextureWithSize(uint32_t size, void *pixelData)
+{
+    // Create a simple texture.
+    GLTexture tex;
+    glBindTexture(GL_TEXTURE_2D, tex);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixelData);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    return tex;
+}
+
+GLTexture InitSimpleTexture()
+{
+    std::vector<GLColor> pixelData(kSize * kSize, GLColor::red);
+    return InitTextureWithSize(kSize, pixelData.data());
+}
+
+GLRenderbuffer InitRenderbufferWithSize(uint32_t size)
+{
+    // Create a simple renderbuffer.
+    GLRenderbuffer renderbuf;
+    glBindRenderbuffer(GL_RENDERBUFFER, renderbuf);
+    glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA4, size, size);
+    return renderbuf;
+}
+
+GLRenderbuffer InitSimpleRenderbuffer()
+{
+    return InitRenderbufferWithSize(kSize);
+}
+
+// Test validation for the extension functions.
+TEST_P(GetImageTest, NegativeAPI)
+{
+    // Verify the extension is enabled.
+    ASSERT_TRUE(IsGLExtensionEnabled(kExtensionName));
+
+    // Draw once with simple texture.
+    GLTexture tex = InitSimpleTexture();
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5, 1.0f, true);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+
+    // Pack pixels tightly.
+    glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
+    // Verify GetTexImage can work with correct parameters.
+    std::vector<GLColor> buffer(kSize * kSize);
+    glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_NO_ERROR();
+
+    // Test invalid texture target.
+    glGetTexImageANGLE(GL_TEXTURE_CUBE_MAP, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Test invalid texture level.
+    glGetTexImageANGLE(GL_TEXTURE_2D, -1, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_VALUE);
+    glGetTexImageANGLE(GL_TEXTURE_2D, 2000, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_VALUE);
+
+    // Test invalid format and type.
+    glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_NONE, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+    glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_NONE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Create a simple renderbuffer.
+    GLRenderbuffer renderbuf = InitSimpleRenderbuffer();
+    ASSERT_GL_NO_ERROR();
+
+    // Verify GetRenderbufferImage can work with correct parameters.
+    glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_NO_ERROR();
+
+    // Test invalid renderbuffer target.
+    glGetRenderbufferImageANGLE(GL_TEXTURE_2D, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Test invalid renderbuffer format/type.
+    glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_NONE, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+    glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_NONE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Pack buffer tests. Requires ES 3+ or extension.
+    if (getClientMajorVersion() >= 3 || IsGLExtensionEnabled("GL_NV_pixel_buffer_object"))
+    {
+        // Test valid pack buffer.
+        GLBuffer packBuffer;
+        glBindBuffer(GL_PIXEL_PACK_BUFFER, packBuffer);
+        glBufferData(GL_PIXEL_PACK_BUFFER, kSize * kSize * sizeof(GLColor), nullptr,
+                     GL_STATIC_DRAW);
+        glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+        EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+        glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+        EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+
+        // Test too small pack buffer.
+        glBufferData(GL_PIXEL_PACK_BUFFER, kSize, nullptr, GL_STATIC_DRAW);
+        glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+        EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+        glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+        EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+    }
+}
+
+// Simple test for GetTexImage
+TEST_P(GetImageTest, GetTexImage)
+{
+    // Verify the extension is enabled.
+    ASSERT_TRUE(IsGLExtensionEnabled(kExtensionName));
+
+    constexpr uint32_t kSmallSize     = 2;
+    std::vector<GLColor> expectedData = {GLColor::red, GLColor::blue, GLColor::green,
+                                         GLColor::yellow};
+
+    glViewport(0, 0, kSmallSize, kSmallSize);
+
+    // Draw once with simple texture.
+    GLTexture tex = InitTextureWithSize(kSmallSize, expectedData.data());
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5, 1.0f, true);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+
+    // Pack pixels tightly.
+    glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
+    // Verify GetImage.
+    std::vector<GLColor> actualData(kSmallSize * kSmallSize);
+    glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, actualData.data());
+    EXPECT_GL_NO_ERROR();
+    EXPECT_EQ(expectedData, actualData);
+}
+
+// Simple cube map test for GetTexImage
+TEST_P(GetImageTest, CubeMap)
+{
+    // Verify the extension is enabled.
+    ASSERT_TRUE(IsGLExtensionEnabled(kExtensionName));
+
+    const std::array<std::array<GLColor, kSmallSize * kSmallSize>, kCubeFaces.size()> expectedData =
+        {{
+            {GLColor::red, GLColor::red, GLColor::red, GLColor::red},
+            {GLColor::green, GLColor::green, GLColor::green, GLColor::green},
+            {GLColor::blue, GLColor::blue, GLColor::blue, GLColor::blue},
+            {GLColor::yellow, GLColor::yellow, GLColor::yellow, GLColor::yellow},
+            {GLColor::cyan, GLColor::cyan, GLColor::cyan, GLColor::cyan},
+            {GLColor::magenta, GLColor::magenta, GLColor::magenta, GLColor::magenta},
+        }};
+
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_CUBE_MAP, texture);
+
+    for (size_t faceIndex = 0; faceIndex < kCubeFaces.size(); ++faceIndex)
+    {
+        glTexImage2D(kCubeFaces[faceIndex], 0, GL_RGBA, kSmallSize, kSmallSize, 0, GL_RGBA,
+                     GL_UNSIGNED_BYTE, expectedData[faceIndex].data());
+    }
+    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    // Pack pixels tightly.
+    glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
+    // Verify GetImage.
+    std::array<GLColor, kSmallSize *kSmallSize> actualData = {};
+    for (size_t faceIndex = 0; faceIndex < kCubeFaces.size(); ++faceIndex)
+    {
+        glGetTexImageANGLE(kCubeFaces[faceIndex], 0, GL_RGBA, GL_UNSIGNED_BYTE, actualData.data());
+        EXPECT_GL_NO_ERROR();
+        EXPECT_EQ(expectedData[faceIndex], actualData);
+    }
+}
+
+// Simple test for GetRenderbufferImage
+TEST_P(GetImageTest, GetRenderbufferImage)
+{
+    // Verify the extension is enabled.
+    ASSERT_TRUE(IsGLExtensionEnabled(kExtensionName));
+
+    std::vector<GLColor> expectedData = {GLColor::red, GLColor::blue, GLColor::green,
+                                         GLColor::yellow};
+
+    glViewport(0, 0, kSmallSize, kSmallSize);
+
+    // Set up a simple Framebuffer with a Renderbuffer.
+    GLRenderbuffer renderbuffer = InitRenderbufferWithSize(kSmallSize);
+    GLFramebuffer framebuffer;
+    glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, renderbuffer);
+    ASSERT_GL_FRAMEBUFFER_COMPLETE(GL_FRAMEBUFFER);
+
+    // Draw once with simple texture.
+    GLTexture tex = InitTextureWithSize(kSmallSize, expectedData.data());
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5, 1.0f, true);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+
+    // Pack pixels tightly.
+    glPixelStorei(GL_PACK_ALIGNMENT, 1);
+
+    // Verify GetImage.
+    std::vector<GLColor> actualData(kSmallSize * kSmallSize);
+    glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_UNSIGNED_BYTE, actualData.data());
+    EXPECT_GL_NO_ERROR();
+    EXPECT_EQ(expectedData, actualData);
+}
+
+// Verifies that the extension enums and entry points are invalid when the extension is disabled.
+TEST_P(GetImageTestNoExtensions, EntryPointsInactive)
+{
+    // Verify the extension is not enabled.
+    ASSERT_FALSE(IsGLExtensionEnabled(kExtensionName));
+
+    // Draw once with simple texture.
+    GLTexture tex = InitSimpleTexture();
+    ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Texture2D(), essl1_shaders::fs::Texture2D());
+    drawQuad(program, essl1_shaders::PositionAttrib(), 0.5, 1.0f, true);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+
+    // Query implementation format and type. Should give invalid enum.
+    GLint param;
+    glGetTexParameteriv(GL_TEXTURE_2D, GL_IMPLEMENTATION_COLOR_READ_FORMAT, &param);
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    glGetTexParameteriv(GL_TEXTURE_2D, GL_IMPLEMENTATION_COLOR_READ_TYPE, &param);
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Verify calling GetTexImage produces an error.
+    std::vector<GLColor> buffer(kSize * kSize, 0);
+    glGetTexImageANGLE(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+
+    // Create a simple renderbuffer.
+    GLRenderbuffer renderbuf = InitSimpleRenderbuffer();
+    ASSERT_GL_NO_ERROR();
+
+    // Query implementation format and type. Should give invalid enum.
+    glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_IMPLEMENTATION_COLOR_READ_FORMAT, &param);
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_IMPLEMENTATION_COLOR_READ_TYPE, &param);
+    EXPECT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Verify calling GetRenderbufferImage produces an error.
+    glGetRenderbufferImageANGLE(GL_RENDERBUFFER, GL_RGBA, GL_UNSIGNED_BYTE, buffer.data());
+    EXPECT_GL_ERROR(GL_INVALID_OPERATION);
+}
+
+ANGLE_INSTANTIATE_TEST(GetImageTest, ES2_VULKAN(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST(GetImageTestNoExtensions, ES2_VULKAN(), ES3_VULKAN());
+}  // namespace
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp
index 5b7536d..a30c4db 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp
@@ -510,8 +510,14 @@
         EXPECT_TRUE(has2DTextureExt());
         EXPECT_TRUE(hasCubemapExt());
         EXPECT_TRUE(hasRenderbufferExt());
-        // TODO(geofflang): Support GL_OES_EGL_image_external_essl3. http://anglebug.com/2668
-        EXPECT_FALSE(hasExternalESSL3Ext());
+        if (getClientMajorVersion() >= 3)
+        {
+            EXPECT_TRUE(hasExternalESSL3Ext());
+        }
+        else
+        {
+            EXPECT_FALSE(hasExternalESSL3Ext());
+        }
     }
     else
     {
@@ -1960,15 +1966,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ImageTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(ImageTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ImageTest);
+ANGLE_INSTANTIATE_TEST_ES3(ImageTestES3);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IncompleteTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IncompleteTextureTest.cpp
index 73ed876..07c7ee1 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IncompleteTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IncompleteTextureTest.cpp
@@ -171,6 +171,8 @@
 // Tests that incomplete textures don't get initialized with the unpack buffer contents.
 TEST_P(IncompleteTextureTestES3, UnpackBufferBound)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     std::vector<GLColor> red(16, GLColor::red);
 
     GLBuffer unpackBuffer;
@@ -186,6 +188,8 @@
 // Tests that the incomplete multisample texture has the correct alpha value.
 TEST_P(IncompleteTextureTestES31, MultisampleTexture)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     constexpr char kVS[] = R"(#version 310 es
 in vec2 position;
 out vec2 texCoord;
@@ -221,11 +225,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(IncompleteTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(IncompleteTextureTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(IncompleteTextureTestES31, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2(IncompleteTextureTest);
+ANGLE_INSTANTIATE_TEST_ES3(IncompleteTextureTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(IncompleteTextureTestES31);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexedPointsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexedPointsTest.cpp
index d0902ca..d47ca0b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexedPointsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/IndexedPointsTest.cpp
@@ -192,26 +192,36 @@
 
 TEST_P(IndexedPointsTestUByte, UnsignedByteOffset0)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(0);
 }
 
 TEST_P(IndexedPointsTestUByte, UnsignedByteOffset1)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(1);
 }
 
 TEST_P(IndexedPointsTestUByte, UnsignedByteOffset2)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(2);
 }
 
 TEST_P(IndexedPointsTestUByte, UnsignedByteOffset3)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(3);
 }
 
 TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset0)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -220,6 +230,8 @@
 
 TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset1)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -228,6 +240,8 @@
 
 TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset2)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -236,6 +250,8 @@
 
 TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset3)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -246,26 +262,36 @@
 
 TEST_P(IndexedPointsTestUShort, UnsignedShortOffset0)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(0);
 }
 
 TEST_P(IndexedPointsTestUShort, UnsignedShortOffset1)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(1);
 }
 
 TEST_P(IndexedPointsTestUShort, UnsignedShortOffset2)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(2);
 }
 
 TEST_P(IndexedPointsTestUShort, UnsignedShortOffset3)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(3);
 }
 
 TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset0)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -274,6 +300,8 @@
 
 TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset1)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -282,6 +310,8 @@
 
 TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset2)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -290,6 +320,8 @@
 
 TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset3)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -298,6 +330,8 @@
 
 TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffsetChangingIndices)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
 
@@ -318,7 +352,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(0);
 }
 
@@ -328,7 +363,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(1);
 }
 
@@ -338,7 +374,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(2);
 }
 
@@ -348,7 +385,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(3);
 }
 
@@ -358,7 +396,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(0, false);
 }
 
@@ -368,7 +407,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(1, false);
 }
 
@@ -378,7 +418,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(2, false);
 }
 
@@ -388,7 +429,8 @@
     {
         return;
     }
-
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     runTest(3, false);
 }
 
@@ -396,18 +438,6 @@
 // http://anglebug.com/2646
 
 // TODO(geofflang): Figure out why this test fails on Intel OpenGL
-ANGLE_INSTANTIATE_TEST(IndexedPointsTestUByte,
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(IndexedPointsTestUShort,
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(IndexedPointsTestUInt,
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
\ No newline at end of file
+ANGLE_INSTANTIATE_TEST_ES2(IndexedPointsTestUByte);
+ANGLE_INSTANTIATE_TEST_ES2(IndexedPointsTestUShort);
+ANGLE_INSTANTIATE_TEST_ES2(IndexedPointsTestUInt);
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
index 8b2d439..872a6b9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
@@ -480,6 +480,8 @@
 // Verify that a large divisor that also changes doesn't cause issues and renders correctly.
 TEST_P(InstancingTestES3, LargeDivisor)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kVS[] = R"(#version 300 es
 layout(location = 0) in vec4 a_position;
 layout(location = 1) in vec4 a_color;
@@ -579,6 +581,8 @@
 // incorrectly clamped down to the maximum signed integer.
 TEST_P(InstancingTestES3, LargestDivisor)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr GLuint kLargeDivisor = std::numeric_limits<GLuint>::max();
     glVertexAttribDivisor(0, kLargeDivisor);
 
@@ -588,13 +592,8 @@
         << "Vertex attrib divisor read was not the same that was passed in.";
 }
 
-ANGLE_INSTANTIATE_TEST(InstancingTestES3, ES3_OPENGL(), ES3_OPENGLES(), ES3_D3D11(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(InstancingTestES3);
 
-ANGLE_INSTANTIATE_TEST(InstancingTestES31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST_ES31(InstancingTestES31);
 
-ANGLE_INSTANTIATE_TEST(InstancingTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(InstancingTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
index 93ca867..e7139ce 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LineLoopTest.cpp
@@ -310,11 +310,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(LineLoopTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(LineLoopTest);
 
-ANGLE_INSTANTIATE_TEST(LineLoopIndirectTest, ES31_OPENGLES(), ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(LineLoopIndirectTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
index a44b55b..d459ea2 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp
@@ -444,15 +444,7 @@
     EXPECT_GL_ERROR(GL_INVALID_OPERATION);
 }
 
-ANGLE_INSTANTIATE_TEST(LinkAndRelinkTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_D3D11(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(LinkAndRelinkTestES31, ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(LinkAndRelinkTest);
+ANGLE_INSTANTIATE_TEST_ES31(LinkAndRelinkTestES31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemoryObjectTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemoryObjectTest.cpp
index c137c17..2eec218 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemoryObjectTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemoryObjectTest.cpp
@@ -66,14 +66,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(MemoryObjectTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(MemoryObjectTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemorySizeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemorySizeTest.cpp
index 0168965..aec41a8 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemorySizeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MemorySizeTest.cpp
@@ -131,13 +131,5 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(MemorySizeTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(MemorySizeTest);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
index 79638cb..327443f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
@@ -1246,14 +1246,5 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(MipmapTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_D3D11_PRESENT_PATH_FAST(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(MipmapTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(MipmapTest);
+ANGLE_INSTANTIATE_TEST_ES3(MipmapTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleCompatibilityTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
index d702984..ac088ff 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
@@ -274,11 +274,7 @@
     EXPECT_EQ(0, memcmp(results[0].get(), results[2].get(), kResultSize));
 }
 
-ANGLE_INSTANTIATE_TEST(EXTMultisampleCompatibilityTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(EXTMultisampleCompatibilityTest);
 
 class MultisampleCompatibilityTest : public ANGLETest
 {
@@ -401,12 +397,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(MultisampleCompatibilityTest,
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(MultisampleCompatibilityTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampledRenderToTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampledRenderToTextureTest.cpp
new file mode 100644
index 0000000..cb90c5b
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampledRenderToTextureTest.cpp
@@ -0,0 +1,738 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// MultisampledRenderToTextureTest: Tests of EXT_multisampled_render_to_texture extension
+
+#include "test_utils/ANGLETest.h"
+#include "test_utils/gl_raii.h"
+
+using namespace angle;
+
+namespace
+{
+constexpr char kBasicVertexShader[] =
+    R"(attribute vec3 position;
+void main()
+{
+    gl_Position = vec4(position, 1);
+})";
+
+constexpr char kGreenFragmentShader[] =
+    R"(void main()
+{
+    gl_FragColor = vec4(0, 1, 0, 1);
+})";
+
+constexpr char kRedFragmentShader[] =
+    R"(void main()
+{
+    gl_FragColor = vec4(1, 0, 0, 1);
+})";
+
+constexpr char kVS[] =
+    "precision highp float;\n"
+    "attribute vec4 position;\n"
+    "varying vec2 texcoord;\n"
+    "\n"
+    "void main()\n"
+    "{\n"
+    "    gl_Position = position;\n"
+    "    texcoord = (position.xy * 0.5) + 0.5;\n"
+    "}\n";
+
+constexpr char kFS[] =
+    "precision highp float;\n"
+    "uniform sampler2D tex;\n"
+    "varying vec2 texcoord;\n"
+    "\n"
+    "void main()\n"
+    "{\n"
+    "    gl_FragColor = texture2D(tex, texcoord);\n"
+    "}\n";
+
+class MultisampledRenderToTextureTest : public ANGLETest
+{
+  protected:
+    MultisampledRenderToTextureTest()
+    {
+        setWindowWidth(64);
+        setWindowHeight(64);
+        setConfigRedBits(8);
+        setConfigGreenBits(8);
+        setConfigBlueBits(8);
+        setConfigAlphaBits(8);
+    }
+
+    void testSetUp() override {}
+
+    void testTearDown() override {}
+
+    void setupCopyTexProgram()
+    {
+        mCopyTextureProgram.makeRaster(kVS, kFS);
+        ASSERT_GL_TRUE(mCopyTextureProgram.valid());
+
+        mCopyTextureUniformLocation = glGetUniformLocation(mCopyTextureProgram, "tex");
+
+        ASSERT_GL_NO_ERROR();
+    }
+
+    void verifyResults(GLuint texture,
+                       GLubyte data[4],
+                       GLint fboSize,
+                       GLint xs,
+                       GLint ys,
+                       GLint xe,
+                       GLint ye)
+    {
+        glViewport(0, 0, fboSize, fboSize);
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+
+        // Draw a quad with the target texture
+        glUseProgram(mCopyTextureProgram);
+        glBindTexture(GL_TEXTURE_2D, texture);
+        glUniform1i(mCopyTextureUniformLocation, 0);
+
+        drawQuad(mCopyTextureProgram, "position", 0.5f);
+
+        // Expect that the rendered quad has the same color as the source texture
+        EXPECT_PIXEL_NEAR(xs, ys, data[0], data[1], data[2], data[3], 1.0);
+        EXPECT_PIXEL_NEAR(xs, ye - 1, data[0], data[1], data[2], data[3], 1.0);
+        EXPECT_PIXEL_NEAR(xe - 1, ys, data[0], data[1], data[2], data[3], 1.0);
+        EXPECT_PIXEL_NEAR(xe - 1, ye - 1, data[0], data[1], data[2], data[3], 1.0);
+        EXPECT_PIXEL_NEAR((xs + xe) / 2, (ys + ye) / 2, data[0], data[1], data[2], data[3], 1.0);
+    }
+
+    void clearAndDrawQuad(GLuint program, GLsizei viewportWidth, GLsizei viewportHeight)
+    {
+        glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+        glClear(GL_COLOR_BUFFER_BIT);
+        glViewport(0, 0, viewportWidth, viewportHeight);
+        ASSERT_GL_NO_ERROR();
+
+        drawQuad(program, "position", 0.0f);
+    }
+
+    GLProgram mCopyTextureProgram;
+    GLint mCopyTextureUniformLocation = -1;
+};
+
+class MultisampledRenderToTextureES3Test : public MultisampledRenderToTextureTest
+{};
+
+// Checking against invalid parameters for RenderbufferStorageMultisampleEXT.
+TEST_P(MultisampledRenderToTextureTest, RenderbufferParameterCheck)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+
+    GLRenderbuffer renderbuffer;
+    glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+
+    // Positive test case
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT16, 64, 64);
+    ASSERT_GL_NO_ERROR();
+
+    GLint samples;
+    glGetIntegerv(GL_MAX_SAMPLES_EXT, &samples);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_GE(samples, 1);
+
+    // Samples too large
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, samples + 1, GL_DEPTH_COMPONENT16, 64, 64);
+    ASSERT_GL_ERROR(GL_INVALID_VALUE);
+
+    // Renderbuffer size too large
+    GLint maxSize;
+    glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &maxSize);
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 2, GL_DEPTH_COMPONENT16, maxSize + 1,
+                                        maxSize);
+    ASSERT_GL_ERROR(GL_INVALID_VALUE);
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 2, GL_DEPTH_COMPONENT16, maxSize,
+                                        maxSize + 1);
+    ASSERT_GL_ERROR(GL_INVALID_VALUE);
+
+    // Retrieving samples
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT16, 64, 64);
+    GLint param = 0;
+    glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_SAMPLES_EXT, &param);
+    // GE because samples may vary base on implementation. Spec says "the resulting value for
+    // RENDERBUFFER_SAMPLES_EXT is guaranteed to be greater than or equal to samples and no more
+    // than the next larger sample count supported by the implementation"
+    EXPECT_GE(param, 4);
+}
+
+// Checking against invalid parameters for FramebufferTexture2DMultisampleEXT.
+TEST_P(MultisampledRenderToTextureTest, Texture2DParameterCheck)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+    ASSERT_GL_NO_ERROR();
+
+    GLFramebuffer fbo;
+    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+    // Positive test case
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    ASSERT_GL_NO_ERROR();
+
+    // Attachment not COLOR_ATTACHMENT0
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    ASSERT_GL_ERROR(GL_INVALID_ENUM);
+
+    // Target not framebuffer
+    glFramebufferTexture2DMultisampleEXT(GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    ASSERT_GL_ERROR(GL_INVALID_ENUM);
+
+    GLint samples;
+    glGetIntegerv(GL_MAX_SAMPLES_EXT, &samples);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_GE(samples, 1);
+
+    // Samples too large
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, samples + 1);
+    ASSERT_GL_ERROR(GL_INVALID_VALUE);
+
+    // Retrieving samples
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    GLint param = 0;
+    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT, &param);
+    // GE because samples may vary base on implementation. Spec says "the resulting value for
+    // TEXTURE_SAMPLES_EXT is guaranteed to be greater than or equal to samples and no more than the
+    // next larger sample count supported by the implementation"
+    EXPECT_GE(param, 4);
+}
+
+// Checking against invalid parameters for FramebufferTexture2DMultisampleEXT (cubemap).
+TEST_P(MultisampledRenderToTextureTest, TextureCubeMapParameterCheck)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_CUBE_MAP, texture);
+    for (GLenum face = 0; face < 6; face++)
+    {
+        glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, GL_RGBA, 64, 64, 0, GL_RGBA,
+                     GL_UNSIGNED_BYTE, nullptr);
+        ASSERT_GL_NO_ERROR();
+    }
+
+    GLint samples;
+    glGetIntegerv(GL_MAX_SAMPLES_EXT, &samples);
+    ASSERT_GL_NO_ERROR();
+    EXPECT_GE(samples, 1);
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    for (GLenum face = 0; face < 6; face++)
+    {
+        // Positive test case
+        glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                             GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texture, 0, 4);
+        ASSERT_GL_NO_ERROR();
+
+        // Attachment not COLOR_ATTACHMENT0
+        glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1,
+                                             GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texture, 0, 4);
+        ASSERT_GL_ERROR(GL_INVALID_ENUM);
+
+        // Target not framebuffer
+        glFramebufferTexture2DMultisampleEXT(GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0,
+                                             GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texture, 0, 4);
+        ASSERT_GL_ERROR(GL_INVALID_ENUM);
+
+        // Samples too large
+        glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                             GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texture, 0,
+                                             samples + 1);
+        ASSERT_GL_ERROR(GL_INVALID_VALUE);
+
+        // Retrieving samples
+        glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                             GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texture, 0, 4);
+        GLint param = 0;
+        glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                              GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT,
+                                              &param);
+        // GE because samples may vary base on implementation. Spec says "the resulting value for
+        // TEXTURE_SAMPLES_EXT is guaranteed to be greater than or equal to samples and no more than
+        // the next larger sample count supported by the implementation"
+        EXPECT_GE(param, 4);
+    }
+}
+
+// Checking for framebuffer completeness using extension methods.
+TEST_P(MultisampledRenderToTextureTest, FramebufferCompleteness)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+
+    // Checking that Renderbuffer and texture2d having different number of samples results
+    // in a FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+    ASSERT_GL_NO_ERROR();
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    EXPECT_GL_FRAMEBUFFER_COMPLETE(GL_FRAMEBUFFER);
+
+    GLRenderbuffer renderbuffer;
+    glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 8, GL_DEPTH_COMPONENT16, 64, 64);
+    ASSERT_GL_NO_ERROR();
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, renderbuffer);
+    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+                     glCheckFramebufferStatus(GL_FRAMEBUFFER));
+}
+
+// Draw test with color attachment only.
+TEST_P(MultisampledRenderToTextureTest, 2DColorAttachmentMultisampleDrawTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    // Set up texture and bind to FBO
+    GLsizei size = 6;
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+    ASSERT_GL_NO_ERROR();
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    EXPECT_GL_FRAMEBUFFER_COMPLETE(GL_FRAMEBUFFER);
+
+    // Set viewport and clear to black
+    glViewport(0, 0, size, size);
+    glClearColor(0.0, 0.0, 0.0, 1.0);
+    glClear(GL_COLOR_BUFFER_BIT);
+
+    // Set up Green square program
+    ANGLE_GL_PROGRAM(program, kBasicVertexShader, kGreenFragmentShader);
+    glUseProgram(program);
+    GLint positionLocation = glGetAttribLocation(program, "position");
+    ASSERT_NE(-1, positionLocation);
+
+    setupQuadVertexBuffer(0.5f, 0.5f);
+    glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, 0, 0);
+    glEnableVertexAttribArray(positionLocation);
+
+    // Draw green square
+    glDrawArrays(GL_TRIANGLES, 0, 6);
+    ASSERT_GL_NO_ERROR();
+
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::black);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::green);
+
+    // Set up Red square program
+    ANGLE_GL_PROGRAM(program2, kBasicVertexShader, kRedFragmentShader);
+    glUseProgram(program2);
+    GLint positionLocation2 = glGetAttribLocation(program2, "position");
+    ASSERT_NE(-1, positionLocation2);
+
+    setupQuadVertexBuffer(0.5f, 0.75f);
+    glVertexAttribPointer(positionLocation2, 3, GL_FLOAT, GL_FALSE, 0, 0);
+
+    // Draw red square
+    glDrawArrays(GL_TRIANGLES, 0, 6);
+    ASSERT_GL_NO_ERROR();
+
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::black);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::red);
+
+    glDisableVertexAttribArray(0);
+    glBindBuffer(GL_ARRAY_BUFFER, 0);
+}
+
+// Draw test using both color and depth attachments.
+TEST_P(MultisampledRenderToTextureTest, 2DColorDepthMultisampleDrawTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    GLsizei size = 6;
+    // create complete framebuffer with depth buffer
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+    ASSERT_GL_NO_ERROR();
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+
+    GLRenderbuffer renderbuffer;
+    glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT16, size, size);
+    ASSERT_GL_NO_ERROR();
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, renderbuffer);
+    EXPECT_GL_FRAMEBUFFER_COMPLETE(GL_FRAMEBUFFER);
+
+    // Set viewport and clear framebuffer
+    glViewport(0, 0, size, size);
+    glClearColor(0.0, 0.0, 0.0, 1.0);
+    glClearDepthf(0.5f);
+    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+    // Draw first green square
+    ANGLE_GL_PROGRAM(program, kBasicVertexShader, kGreenFragmentShader);
+    glEnable(GL_DEPTH_TEST);
+    glDepthFunc(GL_GREATER);
+    glUseProgram(program);
+    GLint positionLocation = glGetAttribLocation(program, "position");
+    ASSERT_NE(-1, positionLocation);
+
+    setupQuadVertexBuffer(0.8f, 0.5f);
+    glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, 0, 0);
+    glEnableVertexAttribArray(positionLocation);
+
+    // Tests that TRIANGLES works.
+    glDrawArrays(GL_TRIANGLES, 0, 6);
+    ASSERT_GL_NO_ERROR();
+
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::black);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::green);
+
+    // Draw red square behind green square
+    ANGLE_GL_PROGRAM(program2, kBasicVertexShader, kRedFragmentShader);
+    glUseProgram(program2);
+    GLint positionLocation2 = glGetAttribLocation(program2, "position");
+    ASSERT_NE(-1, positionLocation2);
+
+    setupQuadVertexBuffer(0.7f, 1.0f);
+    glVertexAttribPointer(positionLocation2, 3, GL_FLOAT, GL_FALSE, 0, 0);
+
+    glDrawArrays(GL_TRIANGLES, 0, 6);
+    ASSERT_GL_NO_ERROR();
+    glDisable(GL_DEPTH_TEST);
+
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::green);
+
+    glDisableVertexAttribArray(0);
+    glBindBuffer(GL_ARRAY_BUFFER, 0);
+}
+
+// Read pixels with pack buffer. ES3+.
+TEST_P(MultisampledRenderToTextureES3Test, MultisampleReadPixelsTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+
+    // PBO only available ES3 and above
+    ANGLE_SKIP_TEST_IF(getClientMajorVersion() < 3);
+    GLsizei size = 6;
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexStorage2D(GL_TEXTURE_2D, 1, GL_RGBA8, size, size);
+    ASSERT_GL_NO_ERROR();
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    EXPECT_GL_FRAMEBUFFER_COMPLETE(GL_FRAMEBUFFER);
+
+    // Set viewport and clear to red
+    glViewport(0, 0, size, size);
+    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
+    glClear(GL_COLOR_BUFFER_BIT);
+    ASSERT_GL_NO_ERROR();
+
+    // Bind Pack Pixel Buffer and read to it
+    GLBuffer PBO;
+    glBindBuffer(GL_PIXEL_PACK_BUFFER, PBO);
+    glBufferData(GL_PIXEL_PACK_BUFFER, 4 * size * size, nullptr, GL_STATIC_DRAW);
+    glReadPixels(0, 0, size, size, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+    ASSERT_GL_NO_ERROR();
+
+    // Retrieving pixel color
+    void *mappedPtr    = glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, 32, GL_MAP_READ_BIT);
+    GLColor *dataColor = static_cast<GLColor *>(mappedPtr);
+    EXPECT_GL_NO_ERROR();
+
+    EXPECT_EQ(GLColor::red, dataColor[0]);
+
+    glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
+    EXPECT_GL_NO_ERROR();
+}
+
+// CopyTexImage from a multisampled texture functionality test.
+TEST_P(MultisampledRenderToTextureTest, MultisampleCopyTexImageTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    GLsizei size = 16;
+
+    setupCopyTexProgram();
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+
+    // Disable mipmapping
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+
+    // Set color for framebuffer
+    glClearColor(0.25f, 1.0f, 0.75f, 0.5f);
+    glClear(GL_COLOR_BUFFER_BIT);
+    ASSERT_GL_NO_ERROR();
+
+    GLTexture copyToTex;
+    glBindTexture(GL_TEXTURE_2D, copyToTex);
+
+    // Disable mipmapping
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, size, size, 0);
+    ASSERT_GL_NO_ERROR();
+
+    GLubyte expected[4] = {64, 255, 191, 255};
+    verifyResults(copyToTex, expected, size, 0, 0, size, size);
+}
+
+// CopyTexSubImage from a multisampled texture functionality test.
+TEST_P(MultisampledRenderToTextureTest, MultisampleCopyTexSubImageTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    GLsizei size = 16;
+
+    setupCopyTexProgram();
+
+    GLTexture texture;
+    // Create texture in copyFBO0 with color (.25, 1, .75, .5)
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+
+    // Disable mipmapping
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    GLFramebuffer copyFBO0;
+    glBindFramebuffer(GL_FRAMEBUFFER, copyFBO0);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+
+    // Set color for
+    glClearColor(0.25f, 1.0f, 0.75f, 0.5f);
+    glClear(GL_COLOR_BUFFER_BIT);
+    ASSERT_GL_NO_ERROR();
+
+    // Create texture in copyFBO[1] with color (1, .75, .5, .25)
+    GLTexture texture1;
+    glBindTexture(GL_TEXTURE_2D, texture1);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+
+    // Disable mipmapping
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    GLFramebuffer copyFBO1;
+    glBindFramebuffer(GL_FRAMEBUFFER, copyFBO1);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture1, 0, 4);
+
+    // Set color for
+    glClearColor(1.0f, 0.75f, 0.5f, 0.25f);
+    glClear(GL_COLOR_BUFFER_BIT);
+    ASSERT_GL_NO_ERROR();
+
+    GLTexture copyToTex;
+    glBindTexture(GL_TEXTURE_2D, copyToTex);
+
+    // Disable mipmapping
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+    // copyFBO0 -> copyToTex
+    // copyToTex should hold what was originally in copyFBO0 : (.25, 1, .75, .5)
+    glBindFramebuffer(GL_FRAMEBUFFER, copyFBO0);
+    glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, size, size, 0);
+    ASSERT_GL_NO_ERROR();
+
+    GLubyte expected0[4] = {64, 255, 191, 255};
+    verifyResults(copyToTex, expected0, size, 0, 0, size, size);
+
+    // copyFBO[1] - copySubImage -> copyToTex
+    // copyToTex should have subportion what was in copyFBO[1] : (1, .75, .5, .25)
+    // The rest should still be untouched: (.25, 1, .75, .5)
+    GLint half = size / 2;
+    glBindFramebuffer(GL_FRAMEBUFFER, copyFBO1);
+    glCopyTexSubImage2D(GL_TEXTURE_2D, 0, half, half, half, half, half, half);
+    ASSERT_GL_NO_ERROR();
+
+    GLubyte expected1[4] = {255, 191, 127, 255};
+    verifyResults(copyToTex, expected1, size, half, half, size, size);
+
+    // Verify rest is untouched
+    verifyResults(copyToTex, expected0, size, 0, 0, half, half);
+    verifyResults(copyToTex, expected0, size, 0, half, half, size);
+    verifyResults(copyToTex, expected0, size, half, 0, size, half);
+}
+
+// BlitFramebuffer functionality test. ES3+.
+TEST_P(MultisampledRenderToTextureES3Test, MultisampleBlitFramebufferTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    // blitFramebuffer only available ES3 and above
+    ANGLE_SKIP_TEST_IF(getClientMajorVersion() < 3);
+
+    GLsizei size = 16;
+
+    // Create multisampled framebuffer to use as source.
+    GLRenderbuffer depthMS;
+    glBindRenderbuffer(GL_RENDERBUFFER, depthMS.get());
+    glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT24, size, size);
+
+    GLTexture colorMS;
+    glBindTexture(GL_TEXTURE_2D, colorMS);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+
+    GLFramebuffer fboMS;
+    glBindFramebuffer(GL_FRAMEBUFFER, fboMS);
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthMS.get());
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         colorMS, 0, 4);
+    ASSERT_GL_NO_ERROR();
+
+    // Clear depth to 0.5 and color to green.
+    glClearDepthf(0.5f);
+    glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+    glFlush();
+    ASSERT_GL_NO_ERROR();
+
+    // Draw red into the multisampled color buffer.
+    ANGLE_GL_PROGRAM(drawRed, essl1_shaders::vs::Simple(), essl1_shaders::fs::Red());
+    glEnable(GL_DEPTH_TEST);
+    glDepthFunc(GL_EQUAL);
+    drawQuad(drawRed.get(), essl1_shaders::PositionAttrib(), 0.0f);
+    ASSERT_GL_NO_ERROR();
+
+    // Create single sampled framebuffer to use as dest.
+    GLFramebuffer fboSS;
+    glBindFramebuffer(GL_FRAMEBUFFER, fboSS);
+    GLTexture colorSS;
+    glBindTexture(GL_TEXTURE_2D, colorSS);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, colorSS, 0);
+    ASSERT_GL_NO_ERROR();
+
+    // Bind MS to READ as SS is already bound to DRAW.
+    glBindFramebuffer(GL_READ_FRAMEBUFFER, fboMS.get());
+    glBlitFramebuffer(0, 0, size, size, 0, 0, size, size, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+    ASSERT_GL_NO_ERROR();
+
+    // Bind SS to READ so we can readPixels from it
+    glBindFramebuffer(GL_FRAMEBUFFER, fboSS.get());
+
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(size - 1, 0, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(0, size - 1, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(size - 1, size - 1, GLColor::red);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+}
+
+// GenerateMipmap functionality test
+TEST_P(MultisampledRenderToTextureTest, MultisampleGenerateMipmapTest)
+{
+    ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_multisampled_render_to_texture"));
+    GLsizei size = 64;
+    // Vertex Shader source
+    constexpr char kVS[] = R"(attribute vec4 position;
+varying vec2 vTexCoord;
+
+void main()
+{
+    gl_Position = position;
+    vTexCoord   = (position.xy * 0.5) + 0.5;
+})";
+
+    // Fragment Shader source
+    constexpr char kFS[] = R"(precision mediump float;
+uniform sampler2D uTexture;
+varying vec2 vTexCoord;
+
+void main()
+{
+    gl_FragColor = texture2D(uTexture, vTexCoord);
+})";
+
+    GLProgram m2DProgram;
+    m2DProgram.makeRaster(kVS, kFS);
+    ASSERT_GL_TRUE(m2DProgram.valid());
+
+    ASSERT_GL_NO_ERROR();
+
+    // Initialize texture with blue
+    GLTexture texture;
+    glBindTexture(GL_TEXTURE_2D, texture);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, size, size, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+    GLFramebuffer FBO;
+    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
+    glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+                                         texture, 0, 4);
+    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
+    glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
+    glClear(GL_COLOR_BUFFER_BIT);
+    glViewport(0, 0, size, size);
+    glBindFramebuffer(GL_FRAMEBUFFER, 0);
+    ASSERT_GL_NO_ERROR();
+
+    // Generate mipmap
+    glGenerateMipmap(GL_TEXTURE_2D);
+    ASSERT_GL_NO_ERROR();
+
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
+
+    // Now draw the texture to various different sized areas.
+    clearAndDrawQuad(m2DProgram, size, size);
+    EXPECT_PIXEL_COLOR_EQ(size / 2, size / 2, GLColor::blue);
+
+    // Use mip level 1
+    clearAndDrawQuad(m2DProgram, size / 2, size / 2);
+    EXPECT_PIXEL_COLOR_EQ(size / 4, size / 4, GLColor::blue);
+
+    // Use mip level 2
+    clearAndDrawQuad(m2DProgram, size / 4, size / 4);
+    EXPECT_PIXEL_COLOR_EQ(size / 8, size / 8, GLColor::blue);
+
+    ASSERT_GL_NO_ERROR();
+}
+ANGLE_INSTANTIATE_TEST(MultisampledRenderToTextureTest,
+                       ES2_D3D9(),
+                       ES2_D3D11(),
+                       ES3_D3D11(),
+                       ES2_OPENGL(),
+                       ES3_OPENGL(),
+                       ES2_OPENGLES(),
+                       ES3_OPENGLES(),
+                       ES2_VULKAN(),
+                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST(MultisampledRenderToTextureES3Test,
+                       ES3_D3D11(),
+                       ES3_OPENGL(),
+                       ES3_OPENGLES(),
+                       ES3_VULKAN());
+}  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ObjectAllocationTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ObjectAllocationTest.cpp
index b0e59f7..9ed29d3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ObjectAllocationTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ObjectAllocationTest.cpp
@@ -51,4 +51,4 @@
 
 }  // anonymous namespace
 
-ANGLE_INSTANTIATE_TEST(ObjectAllocationTest, ES3_OPENGL(), ES3_D3D11());
\ No newline at end of file
+ANGLE_INSTANTIATE_TEST_ES3(ObjectAllocationTest);
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
index 3d2f9d5..8c721e0 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
@@ -194,6 +194,9 @@
     ANGLE_SKIP_TEST_IF(GetParam() == ES2_D3D9() || GetParam() == ES2_D3D11() ||
                        GetParam() == ES3_D3D11() || GetParam() == ES2_VULKAN());
 
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
+
     glDepthMask(GL_TRUE);
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
 
@@ -342,12 +345,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(OcclusionQueriesTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(OcclusionQueriesTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PBOExtensionTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PBOExtensionTest.cpp
index 10f3ae0..97e4bbb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PBOExtensionTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PBOExtensionTest.cpp
@@ -144,4 +144,4 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(PBOExtensionTest, ES2_D3D11(), ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(PBOExtensionTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PackUnpackTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PackUnpackTest.cpp
index fedac73..6c24826 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PackUnpackTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PackUnpackTest.cpp
@@ -141,6 +141,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackSnormNormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mSNormProgram, 0.5f, -0.2f);
     compareBeforeAfter(mSNormProgram, -0.35f, 0.75f);
@@ -152,6 +154,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackUnormNormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mUNormProgram, 0.5f, 0.2f, 0.5f, 0.2f);
     compareBeforeAfter(mUNormProgram, 0.35f, 0.75f, 0.35f, 0.75f);
@@ -163,6 +167,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackHalfNormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mHalfProgram, 0.5f, -0.2f);
     compareBeforeAfter(mHalfProgram, -0.35f, 0.75f);
@@ -174,6 +180,8 @@
 // floating numbers.
 TEST_P(PackUnpackTest, PackUnpackSnormSubnormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mSNormProgram, 0.00001f, -0.00001f);
 }
@@ -182,6 +190,8 @@
 // floating numbers.
 TEST_P(PackUnpackTest, PackUnpackUnormSubnormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input for positive numbers and clamp
     // to [0, 1]
     compareBeforeAfter(mUNormProgram, 0.00001f, -0.00001f, 0.00001f, 0.0f);
@@ -191,6 +201,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackHalfSubnormal)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mHalfProgram, 0.00001f, -0.00001f);
 }
@@ -199,6 +211,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackSnormZero)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mSNormProgram, 0.00000f, -0.00000f);
 }
@@ -207,6 +221,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackUnormZero)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     compareBeforeAfter(mUNormProgram, 0.00000f, -0.00000f, 0.00000f, 0.00000f);
 }
 
@@ -214,6 +230,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackHalfZero)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to output the same value as the input
     compareBeforeAfter(mHalfProgram, 0.00000f, -0.00000f);
 }
@@ -222,6 +240,8 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackUnormOverflow)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to clamp the input to [0, 1]
     compareBeforeAfter(mUNormProgram, 67000.0f, -67000.0f, 1.0f, 0.0f);
 }
@@ -230,9 +250,11 @@
 // numbers.
 TEST_P(PackUnpackTest, PackUnpackSnormOverflow)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsAndroid() && IsVulkan()) || isSwiftshader());
     // Expect the shader to clamp the input to [-1, 1]
     compareBeforeAfter(mSNormProgram, 67000.0f, -67000.0f, 1.0f, -1.0f);
 }
 
-ANGLE_INSTANTIATE_TEST(PackUnpackTest, ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(PackUnpackTest);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
index 8da54e7..b3f8b38 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ParallelShaderCompileTest.cpp
@@ -389,13 +389,8 @@
     runner.run(this);
 }
 
-ANGLE_INSTANTIATE_TEST(ParallelShaderCompileTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(ParallelShaderCompileTest);
 
-ANGLE_INSTANTIATE_TEST(ParallelShaderCompileTestES31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST_ES31(ParallelShaderCompileTestES31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PathRenderingTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PathRenderingTest.cpp
index 6e6aadf..b6a3793 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PathRenderingTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PathRenderingTest.cpp
@@ -1989,22 +1989,6 @@
 
 }  // namespace
 
-ANGLE_INSTANTIATE_TEST(CHROMIUMPathRenderingTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(CHROMIUMPathRenderingDrawTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
-
-ANGLE_INSTANTIATE_TEST(CHROMIUMPathRenderingWithTexturingTest,
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(CHROMIUMPathRenderingTest);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(CHROMIUMPathRenderingDrawTest);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(CHROMIUMPathRenderingWithTexturingTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PbufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PbufferTest.cpp
index 5ebabda..e9a0dae 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PbufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PbufferTest.cpp
@@ -301,9 +301,4 @@
     glDeleteTextures(1, &texture);
 }
 
-ANGLE_INSTANTIATE_TEST(PbufferTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(PbufferTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PointSpritesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PointSpritesTest.cpp
index 0f9a373..a157435 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/PointSpritesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/PointSpritesTest.cpp
@@ -480,6 +480,10 @@
     // rendered at all on AMD. http://anglebug.com/2113
     ANGLE_SKIP_TEST_IF(IsAMD() && IsVulkan());
 
+    // TODO(hqle): Metal on macbook also has problem with drawing point outside framebuffer.
+    // http://anglebug.com/4135
+    ANGLE_SKIP_TEST_IF(IsMetal());
+
     GLfloat pointSizeRange[2] = {};
     glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, pointSizeRange);
     GLfloat maxPointSize = pointSizeRange[1];
@@ -541,9 +545,4 @@
 // We test on D3D11 9_3 because the existing D3D11 PointSprite implementation
 // uses Geometry Shaders which are not supported for 9_3.
 // D3D9 and D3D11 are also tested to ensure no regressions.
-ANGLE_INSTANTIATE_TEST(PointSpritesTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(PointSpritesTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramBinaryTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramBinaryTest.cpp
index 1f3d4e1..1f87cee 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramBinaryTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramBinaryTest.cpp
@@ -274,14 +274,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ProgramBinaryTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(ProgramBinaryTest);
 
 class ProgramBinaryES3Test : public ANGLETest
 {
@@ -620,11 +613,7 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::magenta);
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramBinaryES3Test,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(ProgramBinaryES3Test);
 
 class ProgramBinaryES31Test : public ANGLETest
 {
@@ -650,6 +639,8 @@
     GLint binaryFormatCount = 0;
     glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &binaryFormatCount);
     ANGLE_SKIP_TEST_IF(!binaryFormatCount);
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     constexpr char kCS[] =
         "#version 310 es\n"
@@ -691,6 +682,8 @@
 // Tests that saving and loading a program attached with computer shader.
 TEST_P(ProgramBinaryES31Test, ProgramBinaryWithAtomicCounterComputeShader)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
     // We can't run the test if no program binary formats are supported.
     GLint binaryFormatCount = 0;
     glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &binaryFormatCount);
@@ -811,7 +804,7 @@
     ASSERT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramBinaryES31Test, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES31(ProgramBinaryES31Test);
 
 class ProgramBinaryTransformFeedbackTest : public ANGLETest
 {
@@ -878,7 +871,9 @@
     ANGLE_SKIP_TEST_IF(!getAvailableProgramBinaryFormatCount());
 
     // http://anglebug.com/3690
-    ANGLE_SKIP_TEST_IF(IsAndroid() && IsPixel2() && IsVulkan());
+    ANGLE_SKIP_TEST_IF(IsAndroid() && (IsPixel2() || IsPixel2XL()) && IsVulkan());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
 
     std::vector<uint8_t> binary(0);
     GLint programLength = 0;
@@ -922,7 +917,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ProgramBinaryTransformFeedbackTest, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(ProgramBinaryTransformFeedbackTest);
 
 // For the ProgramBinariesAcrossPlatforms tests, we need two sets of params:
 // - a set to save the program binary
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
index bebff37..8e19c74 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramInterfaceTest.cpp
@@ -122,6 +122,8 @@
 // Tests glGetProgramResourceLocation.
 TEST_P(ProgramInterfaceTestES31, GetResourceLocation)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kVS[] =
         "#version 310 es\n"
         "precision highp float;\n"
@@ -181,6 +183,8 @@
 // Tests glGetProgramResource.
 TEST_P(ProgramInterfaceTestES31, GetResource)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kVS[] =
         "#version 310 es\n"
         "precision highp float;\n"
@@ -1195,10 +1199,6 @@
     glDeleteProgram(program);
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramInterfaceTestES31,
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_D3D11(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(ProgramInterfaceTestES31);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramParameterTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramParameterTest.cpp
index fe6c88e..2c82bb5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramParameterTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramParameterTest.cpp
@@ -70,12 +70,6 @@
     glDeleteProgram(program);
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramParameterTest,
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_D3D11());
-ANGLE_INSTANTIATE_TEST(ProgramParameterTestES31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(ProgramParameterTest);
+ANGLE_INSTANTIATE_TEST_ES31(ProgramParameterTestES31);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramPipelineTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramPipelineTest.cpp
index ae4f6cd..65351f5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramPipelineTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramPipelineTest.cpp
@@ -105,11 +105,7 @@
     EXPECT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(ProgramPipelineTest,
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES());
-ANGLE_INSTANTIATE_TEST(ProgramPipelineTest31, ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(ProgramPipelineTest);
+ANGLE_INSTANTIATE_TEST_ES31(ProgramPipelineTest31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProvokingVertexTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProvokingVertexTest.cpp
index 05840a6..e9af78b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProvokingVertexTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ProvokingVertexTest.cpp
@@ -135,6 +135,9 @@
 // Ensure that any provoking vertex shenanigans still gives correct vertex streams.
 TEST_P(ProvokingVertexTest, FlatTriWithTransformFeedback)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
+
     // TODO(cwallez) figure out why it is broken on AMD on Mac
     ANGLE_SKIP_TEST_IF(IsOSX() && IsAMD());
 
@@ -176,6 +179,8 @@
 // Test drawing a simple line with flat shading, and different valued vertices.
 TEST_P(ProvokingVertexTest, FlatLine)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF((IsWindows() || IsLinux()) && IsVulkan());
     GLfloat halfPixel = 1.0f / static_cast<GLfloat>(getWindowWidth());
 
     GLint vertexData[]     = {1, 2};
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ReadPixelsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ReadPixelsTest.cpp
index 3c4d57a..289b0cc 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ReadPixelsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ReadPixelsTest.cpp
@@ -695,17 +695,9 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(ReadPixelsTest, ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(ReadPixelsPBOTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(ReadPixelsPBODrawTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(ReadPixelsMultisampleTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(ReadPixelsTextureTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(ReadPixelsErrorTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(ReadPixelsTest);
+ANGLE_INSTANTIATE_TEST_ES3(ReadPixelsPBOTest);
+ANGLE_INSTANTIATE_TEST_ES3(ReadPixelsPBODrawTest);
+ANGLE_INSTANTIATE_TEST_ES3(ReadPixelsMultisampleTest);
+ANGLE_INSTANTIATE_TEST_ES3(ReadPixelsTextureTest);
+ANGLE_INSTANTIATE_TEST_ES3(ReadPixelsErrorTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RenderbufferMultisampleTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
index c72fdd5..d81d17b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
@@ -74,11 +74,5 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(RenderbufferMultisampleTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(RenderbufferMultisampleTest);
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RendererTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RendererTest.cpp
index 3cb5811..4db4288 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RendererTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RendererTest.cpp
@@ -172,28 +172,5 @@
 // Select configurations (e.g. which renderer, which GLES major version) these tests should be run
 // against.
 
-ANGLE_INSTANTIATE_TEST(RendererTest,
-                       // ES2 on top of D3D9
-                       ES2_D3D9(),
-
-                       // ES on top of D3D11.
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-
-                       // ES on top of desktop OpenGL.
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-
-                       // ES on top of OpenGL ES.
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-
-                       // All ES version on top of the NULL backend.
-                       ES2_NULL(),
-                       ES3_NULL(),
-                       ES31_NULL(),
-
-                       // ES on top of Vulkan.
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND_ES31_AND_NULL(RendererTest);
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RequestExtensionTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RequestExtensionTest.cpp
index 0d87cd0..b162182 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RequestExtensionTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RequestExtensionTest.cpp
@@ -69,13 +69,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(RequestExtensionTest,
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(RequestExtensionTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
index 3629186..08917a2 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
@@ -564,17 +564,6 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(RobustBufferAccessBehaviorTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES31_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES31_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES31_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND_ES31(RobustBufferAccessBehaviorTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustClientMemoryTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustClientMemoryTest.cpp
index 4c43ab8b..28556c3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustClientMemoryTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustClientMemoryTest.cpp
@@ -200,14 +200,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(RobustClientMemoryTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(RobustClientMemoryTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustResourceInitTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustResourceInitTest.cpp
index 2c08d56..09dfd8f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustResourceInitTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/RobustResourceInitTest.cpp
@@ -842,6 +842,8 @@
 
     // Flaky failure on Linux / NV / Vulkan when run in a sequence. http://anglebug.com/3416
     ANGLE_SKIP_TEST_IF(IsVulkan() && IsNVIDIA() && IsLinux());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsWindows() && IsVulkan());
 
     GLTexture tex;
     setupTexture(&tex);
@@ -1634,6 +1636,8 @@
 {
     ANGLE_SKIP_TEST_IF(!hasGLExtension());
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_compression_dxt1"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     constexpr int width     = 8;
     constexpr int height    = 8;
@@ -1785,6 +1789,8 @@
 TEST_P(RobustResourceInitTestES31, Multisample2DTexture)
 {
     ANGLE_SKIP_TEST_IF(!hasGLExtension());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     GLTexture texture;
     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, texture);
@@ -1947,18 +1953,10 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
 }
 
-ANGLE_INSTANTIATE_TEST(RobustResourceInitTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(RobustResourceInitTest);
 
-ANGLE_INSTANTIATE_TEST(RobustResourceInitTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(RobustResourceInitTestES3);
 
-ANGLE_INSTANTIATE_TEST(RobustResourceInitTestES31, ES31_OPENGL(), ES31_D3D11());
+ANGLE_INSTANTIATE_TEST_ES31(RobustResourceInitTestES31);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBFramebufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBFramebufferTest.cpp
index 517e6c1..4d8ddd1 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBFramebufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBFramebufferTest.cpp
@@ -106,14 +106,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SRGBFramebufferTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SRGBFramebufferTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBTextureTest.cpp
index b685295..163f71a 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBTextureTest.cpp
@@ -363,14 +363,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SRGBTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SRGBTextureTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SamplersTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SamplersTest.cpp
index 7e061f8..4dd63c3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SamplersTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SamplersTest.cpp
@@ -40,6 +40,8 @@
 // Verify that samplerParameterf supports TEXTURE_MAX_ANISOTROPY_EXT valid values.
 TEST_P(SamplersTest, ValidTextureSamplerMaxAnisotropyExt)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     GLSampler sampler;
 
     // Exact min
@@ -60,6 +62,8 @@
 // GL_TEXTURE_MAX_ANISOTROPY_EXT
 TEST_P(SamplersTest, InvalidUnderTextureSamplerMaxAnisotropyExt)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     GLSampler sampler;
 
     // Under min
@@ -70,6 +74,8 @@
 // GL_TEXTURE_MAX_ANISOTROPY_EXT
 TEST_P(SamplersTest, InvalidOverTextureSamplerMaxAnisotropyExt)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     GLSampler sampler;
 
     GLfloat maxValue = 0.0f;
@@ -82,5 +88,5 @@
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
 // Samplers are only supported on ES3.
-ANGLE_INSTANTIATE_TEST(SamplersTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(SamplersTest);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SemaphoreTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SemaphoreTest.cpp
index 0ad11d0..3c4cf12 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SemaphoreTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SemaphoreTest.cpp
@@ -65,14 +65,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SemaphoreTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SemaphoreTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderStorageBufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderStorageBufferTest.cpp
index 2ffb3a7..b3456d0 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderStorageBufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderStorageBufferTest.cpp
@@ -413,6 +413,8 @@
 // Tests reading and writing to a shader storage buffer bound at an offset.
 TEST_P(ShaderStorageBufferTest31, ShaderStorageBufferReadWriteOffset)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     constexpr char kCS[] = R"(#version 310 es
 layout(local_size_x=1, local_size_y=1, local_size_z=1) in;
 
@@ -2222,10 +2224,6 @@
     EXPECT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(ShaderStorageBufferTest31,
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_D3D11(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(ShaderStorageBufferTest31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
index e4e1f27..1d8c360 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
@@ -31,11 +31,6 @@
     gl_FragColor = vec4(0, 1, 0, 1);
 })";
 
-constexpr std::array<GLenum, 6> kCubeFaces = {
-    {GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
-     GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
-     GL_TEXTURE_CUBE_MAP_NEGATIVE_Z}};
-
 class SimpleOperationTest : public ANGLETest
 {
   protected:
@@ -1085,16 +1080,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SimpleOperationTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_D3D11_PRESENT_PATH_FAST(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES2_VULKAN_SWIFTSHADER());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SimpleOperationTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SixteenBppTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SixteenBppTextureTest.cpp
index d32a9d4..5088daa 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SixteenBppTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SixteenBppTextureTest.cpp
@@ -478,13 +478,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SixteenBppTextureTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(SixteenBppTextureTest);
 
-ANGLE_INSTANTIATE_TEST(SixteenBppTextureTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(SixteenBppTextureTestES3);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
index 516aec7..8029d64 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
@@ -491,6 +491,8 @@
 // Ensure that BlitFramebuffer syncs framebuffer changes.
 TEST_P(StateChangeTestES3, BlitFramebufferSync)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
 
     // Init first texture to red
@@ -560,6 +562,8 @@
 // Adapted partially from WebGL 2 test "renderbuffers/invalidate-framebuffer"
 TEST_P(StateChangeTestES3, IncompleteRenderbufferAttachmentInvalidateSync)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
     glBindRenderbuffer(GL_RENDERBUFFER, mRenderbuffer);
     GLint samples = 0;
@@ -902,14 +906,30 @@
         "{\n"
         "    colorOut = varyColor;\n"
         "}";
-    ANGLE_GL_PROGRAM(dualProgram, kDualVS, kDualFS);
-    GLint positionLocation = glGetAttribLocation(dualProgram, "position");
-    ASSERT_NE(-1, positionLocation);
-    GLint colorLocation = glGetAttribLocation(dualProgram, "color");
-    ASSERT_NE(-1, colorLocation);
 
-    GLint singlePositionLocation = glGetAttribLocation(singleProgram, "position");
-    ASSERT_NE(-1, singlePositionLocation);
+    ANGLE_GL_PROGRAM(dualProgram, kDualVS, kDualFS);
+
+    // Force consistent attribute locations
+    constexpr GLint positionLocation = 0;
+    constexpr GLint colorLocation    = 1;
+
+    glBindAttribLocation(singleProgram, positionLocation, "position");
+    glBindAttribLocation(dualProgram, positionLocation, "position");
+    glBindAttribLocation(dualProgram, colorLocation, "color");
+
+    {
+        glLinkProgram(singleProgram);
+        GLint linkStatus;
+        glGetProgramiv(singleProgram, GL_LINK_STATUS, &linkStatus);
+        ASSERT_NE(linkStatus, 0);
+    }
+
+    {
+        glLinkProgram(dualProgram);
+        GLint linkStatus;
+        glGetProgramiv(dualProgram, GL_LINK_STATUS, &linkStatus);
+        ASSERT_NE(linkStatus, 0);
+    }
 
     glUseProgram(singleProgram);
 
@@ -924,8 +944,8 @@
     GLVertexArray vertexArray;
     glBindVertexArray(vertexArray);
     glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
-    glVertexAttribPointer(singlePositionLocation, 3, GL_FLOAT, GL_FALSE, 0, nullptr);
-    glEnableVertexAttribArray(singlePositionLocation);
+    glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, 0, nullptr);
+    glEnableVertexAttribArray(positionLocation);
 
     // Should draw red.
     glDrawArrays(GL_TRIANGLES, 0, 6);
@@ -1006,6 +1026,8 @@
 // Tests that changing an active program invalidates the sampler metadata properly.
 TEST_P(StateChangeTestES3, SamplerMetadataUpdateOnSetProgram)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
     GLVertexArray vertexArray;
     glBindVertexArray(vertexArray);
 
@@ -1046,6 +1068,8 @@
 // Tests that redefining Buffer storage syncs with the Transform Feedback object.
 TEST_P(StateChangeTestES3, RedefineTransformFeedbackBuffer)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     // Create the most simple program possible - simple a passthrough for a float attribute.
     constexpr char kVertexShader[] = R"(#version 300 es
 in float valueIn;
@@ -1173,9 +1197,6 @@
 // Draw an hourglass with a drawElements call followed by a square with drawArrays.
 TEST_P(LineLoopStateChangeTest, DrawElementsThenDrawArrays)
 {
-    // http://anglebug.com/3361
-    ANGLE_SKIP_TEST_IF(IsAMD() && IsVulkan() && IsWindows());
-
     ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
     glUseProgram(program);
 
@@ -1444,6 +1465,8 @@
 // frame.
 TEST_P(SimpleStateChangeTest, DrawArraysThenDrawElements)
 {
+    // http://anglebug.com/4121
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux() && IsOpenGLES());
     ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
     glUseProgram(program);
 
@@ -1775,6 +1798,8 @@
 // verify all the rendering results are the same.
 TEST_P(SimpleStateChangeTest, DrawRepeatUnalignedVboChange)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader() && IsWindows());
     const int kRepeat = 2;
 
     // set up VBO, colorVBO is unaligned
@@ -1891,8 +1916,6 @@
 // Tests updating a buffer's contents while in use, without redefining it.
 TEST_P(SimpleStateChangeTest, UpdateBufferInUse)
 {
-    // tobine: Started failing w/ custom cmd buffers. http://anglebug.com/3255
-    ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsVulkan());
     std::vector<GLColor> redColorData(6, GLColor::red);
 
     GLBuffer buffer;
@@ -2229,6 +2252,8 @@
 
 void SimpleStateChangeTest::updateTextureBoundToFramebufferHelper(UpdateFunc updateFunc)
 {
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_ANGLE_framebuffer_blit"));
+
     std::vector<GLColor> red(4, GLColor::red);
     std::vector<GLColor> green(4, GLColor::green);
 
@@ -2281,6 +2306,8 @@
 // Tests that TexSubImage updates are flushed before rendering.
 TEST_P(SimpleStateChangeTest, TexSubImageOnTextureBoundToFrambuffer)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
     auto updateFunc = [](GLenum textureBinding, GLTexture *tex, GLint x, GLint y,
                          const GLColor &color) {
         glBindTexture(textureBinding, *tex);
@@ -2293,6 +2320,8 @@
 // Tests that CopyTexSubImage updates are flushed before rendering.
 TEST_P(SimpleStateChangeTest, CopyTexSubImageOnTextureBoundToFrambuffer)
 {
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_ANGLE_framebuffer_blit"));
+
     GLTexture copySource;
     glBindTexture(GL_TEXTURE_2D, copySource);
     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
@@ -2321,6 +2350,9 @@
 // target.
 TEST_P(SimpleStateChangeTestES3, ReadFramebufferDrawFramebufferDifferentAttachments)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
+
     GLRenderbuffer drawColorBuffer;
     glBindRenderbuffer(GL_RENDERBUFFER, drawColorBuffer);
     glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, 1, 1);
@@ -2774,6 +2806,8 @@
 // Tries to relink a program in use and use it again to draw something else.
 TEST_P(SimpleStateChangeTest, RelinkProgram)
 {
+    // http://anglebug.com/4121
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsLinux() && IsOpenGLES());
     const GLuint program = glCreateProgram();
 
     GLuint vs     = CompileShader(GL_VERTEX_SHADER, essl1_shaders::vs::Simple());
@@ -3159,9 +3193,6 @@
 // Test that we can alternate between image textures between different dispatchs.
 TEST_P(SimpleStateChangeTestES31, DispatchImageTextureAThenTextureBThenTextureA)
 {
-    // Fails in the last EXPECT call.  http://anglebug.com/3879
-    ANGLE_SKIP_TEST_IF(IsVulkan() && IsWindows() && IsAMD());
-
     std::array<GLColor, 4> colorsTexA = {
         {GLColor::cyan, GLColor::cyan, GLColor::cyan, GLColor::cyan}};
 
@@ -4359,21 +4390,14 @@
 }
 }  // anonymous namespace
 
-ANGLE_INSTANTIATE_TEST(StateChangeTest, ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(LineLoopStateChangeTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(StateChangeRenderTest, ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(StateChangeTestES3, ES3_D3D11(), ES3_OPENGL());
-ANGLE_INSTANTIATE_TEST(SimpleStateChangeTest, ES2_D3D11(), ES2_VULKAN(), ES2_OPENGL());
-ANGLE_INSTANTIATE_TEST(SimpleStateChangeTestES3, ES3_OPENGL(), ES3_D3D11(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(SimpleStateChangeTestES31, ES31_OPENGL(), ES31_D3D11(), ES31_VULKAN());
-ANGLE_INSTANTIATE_TEST(ValidationStateChangeTest, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(WebGL2ValidationStateChangeTest, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(ValidationStateChangeTestES31, ES31_OPENGL(), ES31_D3D11(), ES31_VULKAN());
-ANGLE_INSTANTIATE_TEST(WebGLComputeValidationStateChangeTest,
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(StateChangeTest);
+ANGLE_INSTANTIATE_TEST_ES2(LineLoopStateChangeTest);
+ANGLE_INSTANTIATE_TEST_ES2(StateChangeRenderTest);
+ANGLE_INSTANTIATE_TEST_ES3(StateChangeTestES3);
+ANGLE_INSTANTIATE_TEST_ES2(SimpleStateChangeTest);
+ANGLE_INSTANTIATE_TEST_ES3(SimpleStateChangeTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(SimpleStateChangeTestES31);
+ANGLE_INSTANTIATE_TEST_ES3(ValidationStateChangeTest);
+ANGLE_INSTANTIATE_TEST_ES3(WebGL2ValidationStateChangeTest);
+ANGLE_INSTANTIATE_TEST_ES31(ValidationStateChangeTestES31);
+ANGLE_INSTANTIATE_TEST_ES31(WebGLComputeValidationStateChangeTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SwizzleTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SwizzleTest.cpp
index da1eebd..94f9442 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SwizzleTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SwizzleTest.cpp
@@ -432,7 +432,7 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, expectedUpdateData);
 }
 
-ANGLE_INSTANTIATE_TEST(SwizzleTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(SwizzleIntegerTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(SwizzleTest);
+ANGLE_INSTANTIATE_TEST_ES3(SwizzleIntegerTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cpp
index f911550..0c4b80a 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cpp
@@ -85,14 +85,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SyncQueriesTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SyncQueriesTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureExternalUpdateTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureExternalUpdateTest.cpp
index 811d97d..b8c640b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureExternalUpdateTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureExternalUpdateTest.cpp
@@ -72,14 +72,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(TextureExternalUpdateTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(TextureExternalUpdateTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureMultisampleTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureMultisampleTest.cpp
index 539aacd..d5c21b3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureMultisampleTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureMultisampleTest.cpp
@@ -298,6 +298,8 @@
 TEST_P(TextureMultisampleTest, MultisampleTargetFramebufferTexture2D)
 {
     ANGLE_SKIP_TEST_IF(lessThanES31MultisampleExtNotSupported());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     GLint samples = 1;
     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, mTexture);
     texStorageMultisample(GL_TEXTURE_2D_MULTISAMPLE, samples, GL_RGBA8, 64, 64, GL_FALSE);
@@ -312,6 +314,8 @@
 // Tests basic functionality of glTexStorage2DMultisample.
 TEST_P(TextureMultisampleTest, ValidateTextureStorageMultisampleParameters)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     ANGLE_SKIP_TEST_IF(lessThanES31MultisampleExtNotSupported());
 
     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, mTexture);
@@ -386,6 +390,8 @@
 TEST_P(TextureMultisampleTest, GetTexLevelParameter)
 {
     ANGLE_SKIP_TEST_IF(lessThanES31MultisampleExtNotSupported());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
 
     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, mTexture);
     texStorageMultisample(GL_TEXTURE_2D_MULTISAMPLE, 4, GL_RGBA8, 1, 1, GL_TRUE);
@@ -1026,16 +1032,7 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(TextureMultisampleTest,
-                       ES3_D3D11(),
-                       ES31_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES());
-ANGLE_INSTANTIATE_TEST(NegativeTextureMultisampleTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(TextureMultisampleArrayWebGLTest,
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(TextureMultisampleTest);
+ANGLE_INSTANTIATE_TEST_ES3(NegativeTextureMultisampleTest);
+ANGLE_INSTANTIATE_TEST_ES31(TextureMultisampleArrayWebGLTest);
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureRectangleTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureRectangleTest.cpp
index cae6d34..290841b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureRectangleTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureRectangleTest.cpp
@@ -452,7 +452,7 @@
     ASSERT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(TextureRectangleTest, ES2_OPENGL(), ES3_OPENGL(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureRectangleTestES3, ES3_OPENGL());
-ANGLE_INSTANTIATE_TEST(TextureRectangleTestES31, ES31_OPENGL());
+ANGLE_INSTANTIATE_TEST_ES2(TextureRectangleTest);
+ANGLE_INSTANTIATE_TEST_ES3(TextureRectangleTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(TextureRectangleTestES31);
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
index 6031f04..d3f105f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
@@ -16,6 +16,9 @@
 constexpr GLuint kPixelTolerance     = 1u;
 constexpr GLfloat kPixelTolerance32F = 0.01f;
 
+// Single compressed ETC2 block of source pixels all set red
+constexpr uint8_t kCompressedImageETC2[] = {0x7E, 0x80, 0x04, 0x7F, 0x00, 0x07, 0xE0, 0x00};
+
 // Take a pixel, and reset the components not covered by the format to default
 // values. In particular, the default value for the alpha component is 255
 // (1.0 as unsigned normalized fixed point value).
@@ -45,6 +48,30 @@
     }
 }
 
+GLColor16UI SliceFormatColor16UI(GLenum format, GLColor16UI full)
+{
+    switch (format)
+    {
+        case GL_RED:
+            return GLColor16UI(full.R, 0, 0, 0xFFFF);
+        case GL_RG:
+            return GLColor16UI(full.R, full.G, 0, 0xFFFF);
+        case GL_RGB:
+            return GLColor16UI(full.R, full.G, full.B, 0xFFFF);
+        case GL_RGBA:
+            return full;
+        case GL_LUMINANCE:
+            return GLColor16UI(full.R, full.R, full.R, 0xFFFF);
+        case GL_ALPHA:
+            return GLColor16UI(0, 0, 0, full.R);
+        case GL_LUMINANCE_ALPHA:
+            return GLColor16UI(full.R, full.R, full.R, full.G);
+        default:
+            EXPECT_TRUE(false);
+            return GLColor16UI(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF);
+    }
+}
+
 // As above, for 32F colors
 GLColor32F SliceFormatColor32F(GLenum format, GLColor32F full)
 {
@@ -1395,6 +1422,32 @@
     }
 };
 
+class PBOCompressedTextureTest : public Texture2DTest
+{
+  protected:
+    PBOCompressedTextureTest() : Texture2DTest() {}
+
+    void testSetUp() override
+    {
+        TexCoordDrawTest::testSetUp();
+        glGenTextures(1, &mTexture2D);
+        glBindTexture(GL_TEXTURE_2D, mTexture2D);
+        EXPECT_GL_NO_ERROR();
+
+        setUpProgram();
+
+        glGenBuffers(1, &mPBO);
+    }
+
+    void testTearDown() override
+    {
+        glDeleteBuffers(1, &mPBO);
+        Texture2DTest::testTearDown();
+    }
+
+    GLuint mPBO;
+};
+
 TEST_P(Texture2DTest, NegativeAPISubImage)
 {
     glBindTexture(GL_TEXTURE_2D, mTexture2D);
@@ -1739,53 +1792,176 @@
 // initialized the image with a default color.
 TEST_P(Texture2DTest, TexStorageWithPBO)
 {
-    if (IsGLExtensionEnabled("NV_pixel_buffer_object"))
+    // http://anglebug.com/4126
+    ANGLE_SKIP_TEST_IF(IsOSX() && IsOpenGL());
+
+    if (getClientMajorVersion() < 3)
     {
-        int width  = getWindowWidth();
-        int height = getWindowHeight();
-
-        GLuint tex2D;
-        glGenTextures(1, &tex2D);
-        glActiveTexture(GL_TEXTURE0);
-        glBindTexture(GL_TEXTURE_2D, tex2D);
-
-        // Fill with red
-        std::vector<GLubyte> pixels(3 * 16 * 16);
-        for (size_t pixelId = 0; pixelId < 16 * 16; ++pixelId)
-        {
-            pixels[pixelId * 3 + 0] = 255;
-            pixels[pixelId * 3 + 1] = 0;
-            pixels[pixelId * 3 + 2] = 0;
-        }
-
-        // Read 16x16 region from red backbuffer to PBO
-        GLuint pbo;
-        glGenBuffers(1, &pbo);
-        glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo);
-        glBufferData(GL_PIXEL_UNPACK_BUFFER, 3 * 16 * 16, pixels.data(), GL_STATIC_DRAW);
-
-        // ANGLE internally uses RGBA as the DirectX format for RGB images
-        // therefore glTexStorage2DEXT initializes the image to a default color to get a consistent
-        // alpha color. The data is kept in a CPU-side image and the image is marked as dirty.
-        glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGB8, 16, 16);
-
-        // Initializes the color of the upper-left 8x8 pixels, leaves the other pixels untouched.
-        // glTexSubImage2D should take into account that the image is dirty.
-        glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 8, 8, GL_RGB, GL_UNSIGNED_BYTE, nullptr);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
-        setUpProgram();
-
-        glUseProgram(mProgram);
-        glUniform1i(mTexture2DUniformLocation, 0);
-        drawQuad(mProgram, "position", 0.5f);
-        glDeleteTextures(1, &tex2D);
-        glDeleteBuffers(1, &pbo);
-        EXPECT_GL_NO_ERROR();
-        EXPECT_PIXEL_EQ(3 * width / 4, 3 * height / 4, 0, 0, 0, 255);
-        EXPECT_PIXEL_EQ(width / 4, height / 4, 255, 0, 0, 255);
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_storage"));
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_NV_pixel_buffer_object"));
     }
+
+    const int width          = getWindowWidth();
+    const int height         = getWindowHeight();
+    const size_t pixelCount  = width * height;
+    const int componentCount = 3;
+
+    GLuint tex2D;
+    glGenTextures(1, &tex2D);
+    glActiveTexture(GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, tex2D);
+
+    // Fill with red
+    std::vector<GLubyte> pixels(componentCount * pixelCount);
+    for (size_t pixelId = 0; pixelId < pixelCount; ++pixelId)
+    {
+        pixels[pixelId * componentCount + 0] = 255;
+        pixels[pixelId * componentCount + 1] = 0;
+        pixels[pixelId * componentCount + 2] = 0;
+    }
+
+    // Read 16x16 region from red backbuffer to PBO
+    GLuint pbo;
+    glGenBuffers(1, &pbo);
+    glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo);
+    glBufferData(GL_PIXEL_UNPACK_BUFFER, componentCount * pixelCount, pixels.data(),
+                 GL_STATIC_DRAW);
+
+    // ANGLE internally uses RGBA as the DirectX format for RGB images
+    // therefore glTexStorage2DEXT initializes the image to a default color to get a consistent
+    // alpha color. The data is kept in a CPU-side image and the image is marked as dirty.
+    glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGB8, width, height);
+
+    // Initializes the color of the upper-left quadrant of pixels, leaves the other pixels
+    // untouched. glTexSubImage2D should take into account that the image is dirty.
+    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width / 2, height / 2, GL_RGB, GL_UNSIGNED_BYTE,
+                    nullptr);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+    setUpProgram();
+
+    glUseProgram(mProgram);
+    glUniform1i(mTexture2DUniformLocation, 0);
+    drawQuad(mProgram, "position", 0.5f);
+    glDeleteTextures(1, &tex2D);
+    glDeleteBuffers(1, &pbo);
+    EXPECT_GL_NO_ERROR();
+    EXPECT_PIXEL_EQ(3 * width / 4, 3 * height / 4, 0, 0, 0, 255);
+    EXPECT_PIXEL_EQ(width / 4, height / 4, 255, 0, 0, 255);
+}
+
+// Test that glTexSubImage2D combined with a PBO works properly after deleting the PBO
+// and drawing with the texture
+// Pseudo code for the follow test:
+// 1. Upload PBO to mTexture2D
+// 2. Delete PBO
+// 3. Draw with otherTexture (x5)
+// 4. Draw with mTexture2D
+// 5. Validate color output
+TEST_P(Texture2DTest, PBOWithMultipleDraws)
+{
+    if (getClientMajorVersion() < 3)
+    {
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_storage"));
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_NV_pixel_buffer_object"));
+    }
+
+    const GLuint width            = getWindowWidth();
+    const GLuint height           = getWindowHeight();
+    const GLuint windowPixelCount = width * height;
+    std::vector<GLColor> pixelsRed(windowPixelCount, GLColor::red);
+    std::vector<GLColor> pixelsGreen(windowPixelCount, GLColor::green);
+
+    // Create secondary draw that does not use mTexture
+    const char *vertexShaderSource   = getVertexShaderSource();
+    const char *fragmentShaderSource = getFragmentShaderSource();
+    ANGLE_GL_PROGRAM(otherProgram, vertexShaderSource, fragmentShaderSource);
+
+    GLint uniformLoc = glGetUniformLocation(otherProgram, getTextureUniformName());
+    ASSERT_NE(-1, uniformLoc);
+    glUseProgram(0);
+
+    // Create secondary Texture to draw with
+    GLTexture otherTexture;
+    glActiveTexture(GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, otherTexture);
+    glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8, width, height);
+    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
+                    pixelsRed.data());
+    ASSERT_GL_NO_ERROR();
+
+    // Setup primary Texture
+    glBindTexture(GL_TEXTURE_2D, mTexture2D);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8, width, height);
+    ASSERT_GL_NO_ERROR();
+
+    // Setup PBO
+    GLuint pbo = 0;
+    glGenBuffers(1, &pbo);
+    glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo);
+    glBufferData(GL_PIXEL_UNPACK_BUFFER, pixelsGreen.size() * 4u, pixelsGreen.data(),
+                 GL_STATIC_DRAW);
+    ASSERT_GL_NO_ERROR();
+
+    // Write PBO to mTexture
+    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+    ASSERT_GL_NO_ERROR();
+    // Delete PBO as ANGLE should be properly handling refcount of this buffer
+    glDeleteBuffers(1, &pbo);
+    pixelsGreen.clear();
+
+    // Do 5 draws not involving primary texture that the PBO updated
+    glUseProgram(otherProgram);
+    glUniform1i(uniformLoc, 0);
+    glBindTexture(GL_TEXTURE_2D, otherTexture);
+    drawQuad(otherProgram, "position", 0.5f);
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glUseProgram(0);
+
+    glUseProgram(otherProgram);
+    glUniform1i(uniformLoc, 0);
+    glBindTexture(GL_TEXTURE_2D, otherTexture);
+    drawQuad(otherProgram, "position", 0.5f);
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glUseProgram(0);
+
+    glUseProgram(otherProgram);
+    glUniform1i(uniformLoc, 0);
+    glBindTexture(GL_TEXTURE_2D, otherTexture);
+    drawQuad(otherProgram, "position", 0.5f);
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glUseProgram(0);
+
+    glUseProgram(otherProgram);
+    glUniform1i(uniformLoc, 0);
+    glBindTexture(GL_TEXTURE_2D, otherTexture);
+    drawQuad(otherProgram, "position", 0.5f);
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glUseProgram(0);
+    ASSERT_GL_NO_ERROR();
+
+    std::vector<GLColor> output(windowPixelCount, GLColor::black);
+    glReadPixels(0, 0, getWindowWidth(), getWindowHeight(), GL_RGBA, GL_UNSIGNED_BYTE,
+                 output.data());
+    EXPECT_EQ(pixelsRed, output);
+
+    setUpProgram();
+    // Draw using PBO updated texture
+    glUseProgram(mProgram);
+    glUniform1i(mTexture2DUniformLocation, 0);
+    glBindTexture(GL_TEXTURE_2D, mTexture2D);
+    drawQuad(mProgram, "position", 0.5f);
+    ASSERT_GL_NO_ERROR();
+
+    std::vector<GLColor> actual(windowPixelCount, GLColor::black);
+    glReadPixels(0, 0, getWindowWidth(), getWindowHeight(), GL_RGBA, GL_UNSIGNED_BYTE,
+                 actual.data());
+    // Value should be green as it was updated during PBO transfer to mTexture
+    std::vector<GLColor> expected(windowPixelCount, GLColor::green);
+    EXPECT_EQ(expected, actual);
 }
 
 // Tests CopySubImage for float formats
@@ -2017,8 +2193,8 @@
     // TODO(geofflang): Investigate on D3D11. http://anglebug.com/2291
     ANGLE_SKIP_TEST_IF(IsD3D11());
 
-    // TODO(cnorthrop): Framebuffer level support. http://anglebug.com/3184
-    ANGLE_SKIP_TEST_IF(IsVulkan());
+    // TODO(cnorthrop): Failing on Vulkan/Windows/AMD. http://anglebug.com/3996
+    ANGLE_SKIP_TEST_IF(IsVulkan() && IsWindows() && IsAMD());
 
     setUpProgram();
 
@@ -2677,9 +2853,6 @@
 // samplerCubeShadow: TextureCube + SamplerComparisonState
 TEST_P(SamplerTypeMixTestES3, SamplerTypeMixDraw)
 {
-    // TODO(cnorthrop): Requires non-color staging buffer support. http://anglebug.com/3949
-    ANGLE_SKIP_TEST_IF(IsVulkan());
-
     glActiveTexture(GL_TEXTURE0);
     glBindTexture(GL_TEXTURE_2D, mTexture2D);
     GLubyte texData[4];
@@ -2715,6 +2888,8 @@
     glTexSubImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, 0, 0, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT,
                     depthTexData);
 
+    // http://anglebug.com/3949: TODO: Add a DS texture case
+
     EXPECT_GL_NO_ERROR();
 
     glUseProgram(mProgram);
@@ -4000,10 +4175,9 @@
 
         drawQuad(mProgram, "position", 0.5f);
 
-        GLubyte expectedValue = static_cast<GLubyte>(pixelValue >> 8);
-        EXPECT_PIXEL_COLOR_EQ(0, 0,
-                              SliceFormatColor(format, GLColor(expectedValue, expectedValue,
-                                                               expectedValue, expectedValue)));
+        EXPECT_PIXEL_16UI_COLOR(0, 0,
+                                SliceFormatColor16UI(format, GLColor16UI(pixelValue, pixelValue,
+                                                                         pixelValue, pixelValue)));
 
         glBindRenderbuffer(GL_RENDERBUFFER, mRenderbuffer);
         glRenderbufferStorage(GL_RENDERBUFFER, internalformat, 1, 1);
@@ -4015,13 +4189,20 @@
         glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
         glClear(GL_COLOR_BUFFER_BIT);
 
+        EXPECT_PIXEL_16UI_COLOR(
+            0, 0, SliceFormatColor16UI(format, GLColor16UI(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF)));
+
+        glBindTexture(GL_TEXTURE_2D, mTextures[1]);
         glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, 1, 1);
 
-        EXPECT_PIXEL_COLOR_EQ(0, 0, SliceFormatColor(format, GLColor::white));
-
-        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTextures[1],
+                               0);
+        EXPECT_PIXEL_16UI_COLOR(
+            0, 0, SliceFormatColor16UI(format, GLColor16UI(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF)));
 
         ASSERT_GL_NO_ERROR();
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
     }
 
     GLuint mTextures[3];
@@ -4032,6 +4213,12 @@
 // Test texture formats enabled by the GL_EXT_texture_norm16 extension.
 TEST_P(Texture2DNorm16TestES3, TextureNorm16Test)
 {
+    // TODO(crbug.com/angleproject/4089) Fails on Nexus5X Adreno
+    // TODO(crbug.com/1024387) Fails on Nexus6P
+    ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
+    // TODO(crbug.com/angleproject/4089) Fails on Win Intel OpenGL driver
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsOpenGL());
+
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_norm16"));
 
     testNorm16Texture(GL_R16_EXT, GL_RED, GL_UNSIGNED_SHORT);
@@ -4043,8 +4230,6 @@
     testNorm16Texture(GL_RGB16_SNORM_EXT, GL_RGB, GL_SHORT);
     testNorm16Texture(GL_RGBA16_SNORM_EXT, GL_RGBA, GL_SHORT);
 
-    testNorm16Render(GL_R16_EXT, GL_RED, GL_UNSIGNED_SHORT);
-    testNorm16Render(GL_RG16_EXT, GL_RG, GL_UNSIGNED_SHORT);
     testNorm16Render(GL_RGBA16_EXT, GL_RGBA, GL_UNSIGNED_SHORT);
 }
 
@@ -4598,6 +4783,8 @@
 // Test color-renderability for ES3 float and half float textures
 TEST_P(Texture2DFloatTestES3, TextureFloatRenderTest)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsD3D9());
     // EXT_color_buffer_float covers float, half float, and 11-11-10 float formats
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_color_buffer_float"));
 
@@ -4620,6 +4807,8 @@
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_color_buffer_half_float"));
     // https://crbug.com/1003971
     ANGLE_SKIP_TEST_IF(IsOzone());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsD3D9());
 
     bool atLeastOneSupported = false;
 
@@ -4977,6 +5166,10 @@
 {
     ANGLE_SKIP_TEST_IF(IsD3D11());
     ANGLE_SKIP_TEST_IF(IsIntel() && IsD3D9());
+    ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_ANGLE_depth_texture") &&
+                       !IsGLExtensionEnabled("GL_OES_depth_texture"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsOpenGL() || IsOpenGLES());
 
     // When the depth texture is specified with unsized internalformat implementations follow
     // OES_depth_texture behavior. Otherwise they follow GLES 3.0 behavior.
@@ -5635,152 +5828,103 @@
     EXPECT_PIXEL_COLOR_EQ(width - 1, height - 1, color);
 }
 
+// Test that uses glCompressedTexSubImage2D combined with a PBO
+TEST_P(PBOCompressedTextureTest, PBOCompressedSubImage)
+{
+    // ETC texture formats are not supported on Mac OpenGL. http://anglebug.com/3853
+    ANGLE_SKIP_TEST_IF(IsOSX() && IsDesktopOpenGL());
+    // http://anglebug.com/4115
+    ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsDesktopOpenGL());
+    ANGLE_SKIP_TEST_IF(IsIntel() && IsWindows() && IsDesktopOpenGL());
+
+    if (getClientMajorVersion() < 3)
+    {
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_texture_storage"));
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_NV_pixel_buffer_object"));
+        ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_OES_compressed_ETC2_RGB8_texture"));
+    }
+
+    const GLuint width  = 4u;
+    const GLuint height = 4u;
+
+    setWindowWidth(width);
+    setWindowHeight(height);
+
+    // Setup primary Texture
+    glBindTexture(GL_TEXTURE_2D, mTexture2D);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+    if (getClientMajorVersion() < 3)
+    {
+        glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_COMPRESSED_RGB8_ETC2, width, height);
+    }
+    else
+    {
+        glTexStorage2D(GL_TEXTURE_2D, 1, GL_COMPRESSED_RGB8_ETC2, width, height);
+    }
+    ASSERT_GL_NO_ERROR();
+
+    // Setup PBO and fill it with a red
+    glBindBuffer(GL_PIXEL_UNPACK_BUFFER, mPBO);
+    glBufferData(GL_PIXEL_UNPACK_BUFFER, width * height / 2u, kCompressedImageETC2, GL_STATIC_DRAW);
+    ASSERT_GL_NO_ERROR();
+
+    // Write PBO to mTexture
+    glCompressedTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_COMPRESSED_RGB8_ETC2,
+                              width * height / 2u, nullptr);
+    ASSERT_GL_NO_ERROR();
+
+    setUpProgram();
+    // Draw using PBO updated texture
+    glUseProgram(mProgram);
+    glUniform1i(mTexture2DUniformLocation, 0);
+    glBindTexture(GL_TEXTURE_2D, mTexture2D);
+    drawQuad(mProgram, "position", 0.5f);
+    ASSERT_GL_NO_ERROR();
+
+    EXPECT_PIXEL_COLOR_EQ(getWindowWidth() / 2, getWindowHeight() / 2, GLColor::red);
+    ASSERT_GL_NO_ERROR();
+}
+
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(Texture2DTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureCubeTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DTestWithDrawScale,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(Sampler2DAsFunctionParameterTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerArrayTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerArrayAsFunctionParameterTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture3DTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DIntegerAlpha1TestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DUnsignedIntegerAlpha1TestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(ShadowSamplerPlusSampler3DTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(SamplerTypeMixTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DArrayTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureSizeTextureArrayTest, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerInStructTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerInStructAsFunctionParameterTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerInStructArrayAsFunctionParameterTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerInNestedStructAsFunctionParameterTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(SamplerInStructAndOtherVariableTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureAnisotropyTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureBorderClampTest,
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureBorderClampTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(TextureBorderClampIntegerTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(TextureLimitsTest, ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DNorm16TestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
-ANGLE_INSTANTIATE_TEST(Texture2DRGTest,
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DFloatTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DFloatTestES2,
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureCubeTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DIntegerTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureCubeIntegerTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TextureCubeIntegerEdgeTestES3, ES3_D3D11(), ES3_OPENGL());
-ANGLE_INSTANTIATE_TEST(Texture2DIntegerProjectiveOffsetTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DArrayIntegerTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture3DIntegerTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(Texture2DDepthTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2(Texture2DTest);
+ANGLE_INSTANTIATE_TEST_ES2(TextureCubeTest);
+ANGLE_INSTANTIATE_TEST_ES2(Texture2DTestWithDrawScale);
+ANGLE_INSTANTIATE_TEST_ES2(Sampler2DAsFunctionParameterTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerArrayTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerArrayAsFunctionParameterTest);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture3DTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DIntegerAlpha1TestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DUnsignedIntegerAlpha1TestES3);
+ANGLE_INSTANTIATE_TEST_ES3(ShadowSamplerPlusSampler3DTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(SamplerTypeMixTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DArrayTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(TextureSizeTextureArrayTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerInStructTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerInStructAsFunctionParameterTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerInStructArrayAsFunctionParameterTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerInNestedStructAsFunctionParameterTest);
+ANGLE_INSTANTIATE_TEST_ES2(SamplerInStructAndOtherVariableTest);
+ANGLE_INSTANTIATE_TEST_ES2(TextureAnisotropyTest);
+ANGLE_INSTANTIATE_TEST_ES2(TextureBorderClampTest);
+ANGLE_INSTANTIATE_TEST_ES3(TextureBorderClampTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(TextureBorderClampIntegerTestES3);
+ANGLE_INSTANTIATE_TEST_ES2(TextureLimitsTest);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DNorm16TestES3);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(Texture2DRGTest);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DFloatTestES3);
+ANGLE_INSTANTIATE_TEST_ES2(Texture2DFloatTestES2);
+ANGLE_INSTANTIATE_TEST_ES3(TextureCubeTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DIntegerTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(TextureCubeIntegerTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(TextureCubeIntegerEdgeTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DIntegerProjectiveOffsetTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture2DArrayIntegerTestES3);
+ANGLE_INSTANTIATE_TEST_ES3(Texture3DIntegerTestES3);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(Texture2DDepthTest);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(PBOCompressedTextureTest);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureUploadFormatTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureUploadFormatTest.cpp
index 32c0081..623c6b8 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureUploadFormatTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureUploadFormatTest.cpp
@@ -608,11 +608,4 @@
     EXPECT_GL_NO_ERROR();
 }
 
-ANGLE_INSTANTIATE_TEST(TextureUploadFormatTest,
-                       ES3_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(TextureUploadFormatTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
index 8caeb64..ad8198b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TimerQueriesTest.cpp
@@ -478,6 +478,8 @@
 TEST_P(TimerQueriesTestES3, TimestampGetInteger64)
 {
     ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_disjoint_timer_query"));
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsAndroid());
 
     GLint queryTimestampBits = 0;
     glGetQueryivEXT(GL_TIMESTAMP_EXT, GL_QUERY_COUNTER_BITS_EXT, &queryTimestampBits);
@@ -502,12 +504,6 @@
     EXPECT_LT(result1, result2);
 }
 
-ANGLE_INSTANTIATE_TEST(TimerQueriesTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(TimerQueriesTest);
 
-ANGLE_INSTANTIATE_TEST(TimerQueriesTestES3, ES3_D3D11(), ES3_OPENGL());
+ANGLE_INSTANTIATE_TEST_ES3(TimerQueriesTestES3);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp
index 427e6dc..876e1f5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp
@@ -1644,16 +1644,8 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(TransformFeedbackTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TransformFeedbackLifetimeTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(TransformFeedbackTestES31, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(TransformFeedbackTest);
+ANGLE_INSTANTIATE_TEST_ES3(TransformFeedbackLifetimeTest);
+ANGLE_INSTANTIATE_TEST_ES31(TransformFeedbackTestES31);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
index 85b54c2..0549f2f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformBufferTest.cpp
@@ -1598,11 +1598,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(UniformBufferTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(UniformBufferTest31,
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(UniformBufferTest);
+ANGLE_INSTANTIATE_TEST_ES31(UniformBufferTest31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformTest.cpp
index 72e8778..aaf289f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformTest.cpp
@@ -1410,24 +1410,9 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(SimpleUniformTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(UniformTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(UniformTestES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
-ANGLE_INSTANTIATE_TEST(UniformTestES31, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SimpleUniformTest);
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(UniformTest);
+ANGLE_INSTANTIATE_TEST_ES3(UniformTestES3);
+ANGLE_INSTANTIATE_TEST_ES31(UniformTestES31);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackAlignmentTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackAlignmentTest.cpp
index 698f1c0..28d2847 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackAlignmentTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackAlignmentTest.cpp
@@ -297,13 +297,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(UnpackAlignmentTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_VULKAN(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(UnpackAlignmentTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackRowLength.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackRowLength.cpp
index a5168ff..c354fdc 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackRowLength.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/UnpackRowLength.cpp
@@ -99,14 +99,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(UnpackRowLengthTest,
-                       ES3_D3D11(),
-                       ES2_D3D11(),
-                       ES2_D3D9(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(UnpackRowLengthTest);
 
 }  // namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
index 43b309e..6078dbb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp
@@ -1203,6 +1203,9 @@
 // Verify that using a different start vertex doesn't mess up the draw.
 TEST_P(VertexAttributeTest, DrawArraysWithBufferOffset)
 {
+    // anglebug.com/4163
+    ANGLE_SKIP_TEST_IF(IsD3D11() && IsNVIDIA() && IsWindows7());
+
     // TODO(jmadill): Diagnose this failure.
     ANGLE_SKIP_TEST_IF(IsD3D11_FL93());
 
@@ -2409,41 +2412,14 @@
 // tests should be run against.
 // D3D11 Feature Level 9_3 uses different D3D formats for vertex attribs compared to Feature Levels
 // 10_0+, so we should test them separately.
-ANGLE_INSTANTIATE_TEST(VertexAttributeTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(VertexAttributeTest);
 
-ANGLE_INSTANTIATE_TEST(VertexAttributeOORTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(VertexAttributeOORTest);
 
-ANGLE_INSTANTIATE_TEST(VertexAttributeTestES3,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES3(VertexAttributeTestES3);
 
-ANGLE_INSTANTIATE_TEST(VertexAttributeTestES31,
-                       ES31_D3D11(),
-                       ES31_OPENGL(),
-                       ES31_OPENGLES(),
-                       ES31_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES31(VertexAttributeTestES31);
 
-ANGLE_INSTANTIATE_TEST(VertexAttributeCachingTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(VertexAttributeCachingTest);
 
 }  // anonymous namespace
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanExternalImageTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanExternalImageTest.cpp
index 96e093b..18a37b1 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanExternalImageTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanExternalImageTest.cpp
@@ -57,6 +57,8 @@
 // glImportMemoryFdEXT must be able to import a valid opaque fd.
 TEST_P(VulkanExternalImageTest, ShouldImportMemoryOpaqueFd)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
 
     VulkanExternalHelper helper;
@@ -93,6 +95,8 @@
 // glImportSemaphoreFdEXT must be able to import a valid opaque fd.
 TEST_P(VulkanExternalImageTest, ShouldImportSemaphoreOpaqueFd)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_semaphore_fd"));
 
     VulkanExternalHelper helper;
@@ -122,6 +126,8 @@
 // Test creating and clearing a simple RGBA8 texture in a opaque fd.
 TEST_P(VulkanExternalImageTest, ShouldClearOpaqueFdRGBA8)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(isSwiftshader());
     ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
 
     VulkanExternalHelper helper;
@@ -171,14 +177,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(VulkanExternalImageTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(VulkanExternalImageTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
index ebcc74f..b451087 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
@@ -584,6 +584,17 @@
         glRequestExtensionANGLE("GL_NV_pixel_buffer_object");
         EXPECT_GL_NO_ERROR();
 
+        // Create a framebuffer to read from
+        GLRenderbuffer renderbuffer;
+        glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+        glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA4, 1, 1);
+
+        GLFramebuffer fbo;
+        glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
+                                  renderbuffer);
+        EXPECT_GL_NO_ERROR();
+
         glBindBuffer(GL_PIXEL_PACK_BUFFER, buffer);
         EXPECT_GL_NO_ERROR();
 
@@ -984,6 +995,14 @@
         glTexImage2D(GL_TEXTURE_RECTANGLE_ANGLE, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE,
                      nullptr);
         EXPECT_GL_NO_ERROR();
+
+        glDisableExtensionANGLE("GL_ANGLE_texture_rectangle");
+        EXPECT_GL_NO_ERROR();
+
+        EXPECT_FALSE(IsGLExtensionEnabled("GL_ANGLE_texture_rectangle"));
+
+        glBindTexture(GL_TEXTURE_RECTANGLE_ANGLE, texture);
+        EXPECT_GL_ERROR(GL_INVALID_ENUM);
     }
 }
 
@@ -3588,7 +3607,7 @@
     FillTexture2D(tex0.get(), width, height, GLColor::black, 0, GL_RGBA, GL_RGBA, GL_UNSIGNED_BYTE);
     FillTexture2D(tex1.get(), width, height, 0x80, 0, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT,
                   GL_UNSIGNED_INT);
-    FillTexture2D(tex2.get(), width, height, 0x40, 0, GL_DEPTH_STENCIL, GL_DEPTH_STENCIL,
+    FillTexture2D(tex2.get(), width, height, 0x40, 0, GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL,
                   GL_UNSIGNED_INT_24_8);
     ASSERT_GL_NO_ERROR();
 
@@ -3650,6 +3669,8 @@
 // But the level of the 3D texture != the level of the read attachment.
 TEST_P(WebGL2CompatibilityTest, NoTextureCopyingFeedbackLoopBetween3DLevels)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     GLTexture texture;
     GLFramebuffer framebuffer;
 
@@ -3669,6 +3690,8 @@
 // But the zoffset of the 3D texture != the layer of the read attachment.
 TEST_P(WebGL2CompatibilityTest, NoTextureCopyingFeedbackLoopBetween3DLayers)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan());
     GLTexture texture;
     GLFramebuffer framebuffer;
 
@@ -4623,16 +4646,7 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(WebGLCompatibilityTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN(),
-                       ES3_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGLCompatibilityTest);
 
-ANGLE_INSTANTIATE_TEST(WebGL2CompatibilityTest, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES3(WebGL2CompatibilityTest);
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLFramebufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLFramebufferTest.cpp
index a99232e..b50c4ad 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLFramebufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLFramebufferTest.cpp
@@ -901,14 +901,6 @@
 }
 
 // Only run against WebGL 1 validation, since much was changed in 2.
-ANGLE_INSTANTIATE_TEST(WebGLFramebufferTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES2_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGLFramebufferTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
index db8c613..b35722d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
@@ -362,6 +362,8 @@
 // Check that copyTexImage2D sets (0,0,0,0) for pixels outside the framebuffer.
 TEST_P(WebGLReadOutsideFramebufferTest, CopyTexImage2D)
 {
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan() || IsD3D9() || IsD3D11());
     Main2D(&WebGLReadOutsideFramebufferTest::TestCopyTexImage2D, true);
 
     // TODO(fjhenigman): Figure out this failure.
@@ -375,25 +377,19 @@
 // the corresponding source pixel is outside the framebuffer.
 TEST_P(WebGL2ReadOutsideFramebufferTest, CopyTexSubImage3D)
 {
+    // TODO(hqle): Metal doesn't implement 3D texture yet.
+    // http://anglebug.com/4136 (ES2 renderer is mistakenly included in this test)
+    ANGLE_SKIP_TEST_IF(IsMetal());
+    // http://anglebug.com/4092
+    ANGLE_SKIP_TEST_IF(IsVulkan() || IsD3D9() || IsD3D11());
     // Robust CopyTexSubImage3D behaviour is not implemented on OpenGL.
     ANGLE_SKIP_TEST_IF(IsDesktopOpenGL() || IsOpenGLES());
 
     Main3D(&WebGLReadOutsideFramebufferTest::TestCopyTexSubImage3D, false);
 }
 
-ANGLE_INSTANTIATE_TEST(WebGLReadOutsideFramebufferTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGLReadOutsideFramebufferTest);
 
-ANGLE_INSTANTIATE_TEST(WebGL2ReadOutsideFramebufferTest,
-                       ES3_D3D11(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGL2ReadOutsideFramebufferTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/AlphaFuncTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/AlphaFuncTest.cpp
index 82ed1d0..0b9e7c9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/AlphaFuncTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/AlphaFuncTest.cpp
@@ -93,4 +93,4 @@
     EXPECT_EQ(std::numeric_limits<GLint>::max(), alphaTestVal);
 }
 
-ANGLE_INSTANTIATE_TEST(AlphaFuncTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(AlphaFuncTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/BasicDrawTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/BasicDrawTest.cpp
index c296df0..509b23b 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/BasicDrawTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/BasicDrawTest.cpp
@@ -80,4 +80,4 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
 }
 
-ANGLE_INSTANTIATE_TEST(BasicDrawTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(BasicDrawTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientActiveTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientActiveTextureTest.cpp
index 8082d07..34a6375 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientActiveTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientActiveTextureTest.cpp
@@ -77,8 +77,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(ClientActiveTextureTest,
-                       ES1_D3D11(),
-                       ES1_OPENGL(),
-                       ES1_OPENGLES(),
-                       ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(ClientActiveTextureTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientStateEnable.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientStateEnable.cpp
index 0413d3d..b2bbf54 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientStateEnable.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClientStateEnable.cpp
@@ -89,4 +89,4 @@
     EXPECT_GL_FALSE(glIsEnabled(GL_TEXTURE_COORD_ARRAY));
 }
 
-ANGLE_INSTANTIATE_TEST(ClientStateEnable, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(ClientStateEnable);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClipPlaneTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClipPlaneTest.cpp
index 0731834..6218039 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClipPlaneTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ClipPlaneTest.cpp
@@ -116,4 +116,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(ClipPlaneTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(ClipPlaneTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentColorTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentColorTest.cpp
index a40ead2..230740d 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentColorTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentColorTest.cpp
@@ -75,4 +75,4 @@
     EXPECT_NEAR(1.0f / 3.0f, floatColor.A, epsilon);
 }
 
-ANGLE_INSTANTIATE_TEST(CurrentColorTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(CurrentColorTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentNormalTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentNormalTest.cpp
index 6a35dfc..1bce4d8 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentNormalTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentNormalTest.cpp
@@ -66,4 +66,4 @@
     EXPECT_NEAR(1.0f / 3.0f, actualNormal[2], epsilon);
 }
 
-ANGLE_INSTANTIATE_TEST(CurrentNormalTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(CurrentNormalTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentTextureCoordsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentTextureCoordsTest.cpp
index 5ad1953..0d4ff20 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentTextureCoordsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/CurrentTextureCoordsTest.cpp
@@ -96,8 +96,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(CurrentTextureCoordsTest,
-                       ES1_D3D11(),
-                       ES1_OPENGL(),
-                       ES1_OPENGLES(),
-                       ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(CurrentTextureCoordsTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/DrawTextureTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/DrawTextureTest.cpp
index 22f3c53..21d696a 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/DrawTextureTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/DrawTextureTest.cpp
@@ -133,4 +133,4 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
 }
 
-ANGLE_INSTANTIATE_TEST(DrawTextureTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(DrawTextureTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/FogTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/FogTest.cpp
index 10494ad..26ba9d3 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/FogTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/FogTest.cpp
@@ -130,4 +130,4 @@
     EXPECT_EQ(0.4f, fogValue[3]);
 }
 
-ANGLE_INSTANTIATE_TEST(FogTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(FogTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/LightsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/LightsTest.cpp
index 6752e3b..d413088 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/LightsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/LightsTest.cpp
@@ -314,4 +314,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(LightsTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(LightsTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MaterialsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MaterialsTest.cpp
index fcebff6..717c237 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MaterialsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MaterialsTest.cpp
@@ -128,4 +128,4 @@
     EXPECT_EQ(kShininessTestValue, actualShininess);
 }
 
-ANGLE_INSTANTIATE_TEST(MaterialsTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MaterialsTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixBuiltinsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixBuiltinsTest.cpp
index 1964688..a0357d7 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixBuiltinsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixBuiltinsTest.cpp
@@ -173,4 +173,4 @@
     EXPECT_GL_ERROR(GL_INVALID_VALUE);
 }
 
-ANGLE_INSTANTIATE_TEST(MatrixBuiltinsTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MatrixBuiltinsTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixLoadTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixLoadTest.cpp
index 8f09be8..aa020bb 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixLoadTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixLoadTest.cpp
@@ -102,4 +102,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(MatrixLoadTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MatrixLoadTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixModeTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixModeTest.cpp
index 3a3bb90..0b1b2fc 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixModeTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixModeTest.cpp
@@ -62,4 +62,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(MatrixModeTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MatrixModeTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixMultTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixMultTest.cpp
index 99817f8..45b3ca6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixMultTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixMultTest.cpp
@@ -74,4 +74,4 @@
     EXPECT_EQ(angle::Mat4(), outputMatrix);
 }
 
-ANGLE_INSTANTIATE_TEST(MatrixMultTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MatrixMultTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixStackTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixStackTest.cpp
index 52c86b3..771d554 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixStackTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/MatrixStackTest.cpp
@@ -112,4 +112,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(MatrixStackTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(MatrixStackTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointParameterTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointParameterTest.cpp
index 45cdf70..14e5ba6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointParameterTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointParameterTest.cpp
@@ -153,4 +153,4 @@
     EXPECT_EQ(3.0f, params[2]);
 }
 
-ANGLE_INSTANTIATE_TEST(PointParameterTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(PointParameterTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointSpriteTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointSpriteTest.cpp
index fbac388..49da7cd 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointSpriteTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/PointSpriteTest.cpp
@@ -84,4 +84,4 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
 }
 
-ANGLE_INSTANTIATE_TEST(PointSpriteTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(PointSpriteTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ShadeModelTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ShadeModelTest.cpp
index c45803c..3130a81 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ShadeModelTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/ShadeModelTest.cpp
@@ -68,4 +68,4 @@
     EXPECT_GLENUM_EQ(GL_SMOOTH, shadeModel);
 }
 
-ANGLE_INSTANTIATE_TEST(ShadeModelTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(ShadeModelTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureEnvTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureEnvTest.cpp
index 4aa63af..cb6c0d5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureEnvTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureEnvTest.cpp
@@ -372,4 +372,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(TextureEnvTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(TextureEnvTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureParameterTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureParameterTest.cpp
index a629eae..cc666f9 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureParameterTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureParameterTest.cpp
@@ -111,8 +111,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(TextureParameterTest,
-                       ES1_D3D11(),
-                       ES1_OPENGL(),
-                       ES1_OPENGLES(),
-                       ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(TextureParameterTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureTargetEnableTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureTargetEnableTest.cpp
index 71f26c7..fa7dc75 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureTargetEnableTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/TextureTargetEnableTest.cpp
@@ -76,8 +76,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(TextureTargetEnableTest,
-                       ES1_D3D11(),
-                       ES1_OPENGL(),
-                       ES1_OPENGLES(),
-                       ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(TextureTargetEnableTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/VertexPointerTest.cpp b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/VertexPointerTest.cpp
index f62c708..10a7dbd 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/VertexPointerTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gl_tests/gles1/VertexPointerTest.cpp
@@ -64,4 +64,4 @@
     }
 }
 
-ANGLE_INSTANTIATE_TEST(VertexPointerTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES1(VertexPointerTest);
diff --git a/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp b/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
index 587b2dd..12b3e28 100644
--- a/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
@@ -348,8 +348,6 @@
 
 TEST_P(GLES1ConformanceTest, Scissor)
 {
-    // http://g.co/anglebug/3867
-    ANGLE_SKIP_TEST_IF(IsVulkan() && IsWindows() && IsIntel());
     ASSERT_NE(CONFORMANCE_TEST_ERROR, ScissorExec());
 }
 
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
index e3f15e7..6db5f19 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/MultiviewPerf.cpp
@@ -421,7 +421,7 @@
                             "   frag_Col3 = vert_Col3;\n"
                             "   frag_Col4 = vert_Col4;\n"
                             "   frag_Col5 = vert_Col5;\n"
-                            "    gl_Position = vPosition;\n"
+                            "   gl_Position = vPosition;\n"
                             "}\n";
 
     const std::string &fs =
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/TextureUploadPerf.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/TextureUploadPerf.cpp
index 7bbf7aa..1e5f3a5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/TextureUploadPerf.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/TextureUploadPerf.cpp
@@ -109,6 +109,69 @@
     void drawBenchmark() override;
 };
 
+class PBOSubImageBenchmark : public TextureUploadBenchmarkBase
+{
+  public:
+    PBOSubImageBenchmark() : TextureUploadBenchmarkBase("PBO") {}
+
+    void initializeBenchmark() override
+    {
+        TextureUploadBenchmarkBase::initializeBenchmark();
+
+        const auto &params = GetParam();
+
+        glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8, params.baseSize, params.baseSize);
+
+        glGenBuffers(1, &mPBO);
+        glBindBuffer(GL_PIXEL_UNPACK_BUFFER, mPBO);
+        glBufferData(GL_PIXEL_UNPACK_BUFFER, params.baseSize * params.baseSize * 4,
+                     mTextureData.data(), GL_STREAM_DRAW);
+    }
+
+    void destroyBenchmark()
+    {
+        TextureUploadBenchmarkBase::destroyBenchmark();
+        glDeleteBuffers(1, &mPBO);
+    }
+
+    void drawBenchmark() override;
+
+  private:
+    GLuint mPBO;
+};
+
+class PBOCompressedSubImageBenchmark : public TextureUploadBenchmarkBase
+{
+  public:
+    PBOCompressedSubImageBenchmark() : TextureUploadBenchmarkBase("PBOCompressed") {}
+
+    void initializeBenchmark() override
+    {
+        TextureUploadBenchmarkBase::initializeBenchmark();
+
+        const auto &params = GetParam();
+
+        glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_COMPRESSED_RGB8_ETC2, params.baseSize,
+                          params.baseSize);
+
+        glGenBuffers(1, &mPBO);
+        glBindBuffer(GL_PIXEL_UNPACK_BUFFER, mPBO);
+        glBufferData(GL_PIXEL_UNPACK_BUFFER, params.subImageSize * params.subImageSize / 2,
+                     mTextureData.data(), GL_STREAM_DRAW);
+    }
+
+    void destroyBenchmark()
+    {
+        TextureUploadBenchmarkBase::destroyBenchmark();
+        glDeleteBuffers(1, &mPBO);
+    }
+
+    void drawBenchmark() override;
+
+  private:
+    GLuint mPBO;
+};
+
 TextureUploadBenchmarkBase::TextureUploadBenchmarkBase(const char *benchmarkName)
     : ANGLERenderTest(benchmarkName, GetParam())
 {
@@ -228,6 +291,46 @@
     ASSERT_GL_NO_ERROR();
 }
 
+void PBOSubImageBenchmark::drawBenchmark()
+{
+    const auto &params = GetParam();
+
+    startGpuTimer();
+    for (unsigned int iteration = 0; iteration < params.iterationsPerStep; ++iteration)
+    {
+        glTexSubImage2D(GL_TEXTURE_2D, 0, rand() % (params.baseSize - params.subImageSize),
+                        rand() % (params.baseSize - params.subImageSize), params.subImageSize,
+                        params.subImageSize, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+
+        // Perform a draw just so the texture data is flushed.  With the position attributes not
+        // set, a constant default value is used, resulting in a very cheap draw.
+        glDrawArrays(GL_TRIANGLES, 0, 3);
+    }
+    stopGpuTimer();
+
+    ASSERT_GL_NO_ERROR();
+}
+
+void PBOCompressedSubImageBenchmark::drawBenchmark()
+{
+    const auto &params = GetParam();
+
+    startGpuTimer();
+    for (unsigned int iteration = 0; iteration < params.iterationsPerStep; ++iteration)
+    {
+        glCompressedTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, params.subImageSize, params.subImageSize,
+                                  GL_COMPRESSED_RGB8_ETC2,
+                                  params.subImageSize * params.subImageSize / 2, 0);
+
+        // Perform a draw just so the texture data is flushed.  With the position attributes not
+        // set, a constant default value is used, resulting in a very cheap draw.
+        glDrawArrays(GL_TRIANGLES, 0, 3);
+    }
+    stopGpuTimer();
+
+    ASSERT_GL_NO_ERROR();
+}
+
 TextureUploadParams D3D11Params(bool webglCompat)
 {
     TextureUploadParams params;
@@ -252,6 +355,30 @@
     return params;
 }
 
+TextureUploadParams VulkanPBOParams(GLsizei baseSize, GLsizei subImageSize)
+{
+    TextureUploadParams params;
+    params.eglParameters = egl_platform::VULKAN();
+    params.webgl         = false;
+    params.trackGpuTime  = false;
+    params.baseSize      = baseSize;
+    params.subImageSize  = subImageSize;
+    return params;
+}
+
+TextureUploadParams ES3OpenGLPBOParams(GLsizei baseSize, GLsizei subImageSize)
+{
+    TextureUploadParams params;
+    params.eglParameters = egl_platform::OPENGL();
+    params.majorVersion  = 3;
+    params.minorVersion  = 0;
+    params.webgl         = false;
+    params.trackGpuTime  = false;
+    params.baseSize      = baseSize;
+    params.subImageSize  = subImageSize;
+    return params;
+}
+
 }  // anonymous namespace
 
 TEST_P(TextureUploadSubImageBenchmark, Run)
@@ -264,6 +391,16 @@
     run();
 }
 
+TEST_P(PBOSubImageBenchmark, Run)
+{
+    run();
+}
+
+TEST_P(PBOCompressedSubImageBenchmark, Run)
+{
+    run();
+}
+
 using namespace params;
 
 ANGLE_INSTANTIATE_TEST(TextureUploadSubImageBenchmark,
@@ -283,3 +420,11 @@
                        VulkanParams(false),
                        NullDevice(VulkanParams(false)),
                        VulkanParams(true));
+
+ANGLE_INSTANTIATE_TEST(PBOSubImageBenchmark,
+                       ES3OpenGLPBOParams(1024, 128),
+                       VulkanPBOParams(1024, 128));
+
+ANGLE_INSTANTIATE_TEST(PBOCompressedSubImageBenchmark,
+                       ES3OpenGLPBOParams(128, 128),
+                       VulkanPBOParams(128, 128));
diff --git a/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp b/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
index 2d5e463..174fcc6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/perf_tests/glmark2Benchmark.cpp
@@ -151,10 +151,9 @@
         }
         args.push_back(nullptr);
 
-        std::string output;
-        int exitCode;
-
-        bool success = RunApp(args, &output, nullptr, &exitCode);
+        ProcessHandle process(args, true, false);
+        ASSERT_TRUE(process && process->started());
+        ASSERT_TRUE(process->finish());
 
         // Restore the current working directory for the next tests.
         if (cwd.valid())
@@ -162,11 +161,11 @@
             SetCWD(cwd.value().c_str());
         }
 
-        ASSERT_TRUE(success);
-        ASSERT_EQ(EXIT_SUCCESS, exitCode);
+        ASSERT_EQ(EXIT_SUCCESS, process->getExitCode());
 
         if (!OneFrame())
         {
+            std::string output = process->getStdout();
             parseOutput(output, benchmarkName, completeRun);
         }
     }
diff --git a/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/extension_test.cpp b/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/extension_test.cpp
index f253778..772cd7e 100644
--- a/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/extension_test.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/extension_test.cpp
@@ -74,8 +74,12 @@
     const char *expected = "int baz = 1;\n\n";
 
     using testing::_;
-    // Expect an error about extension pragmas after non-preprocessor tokens.
-    EXPECT_CALL(mDiagnostics, print(pp::Diagnostics::PP_NON_PP_TOKEN_BEFORE_EXTENSION_ESSL, _, _));
+#if defined(ANGLE_PLATFORM_CHROMEOS)
+    // Directive successfully parsed.
+    EXPECT_CALL(mDirectiveHandler, handleExtension(pp::SourceLocation(0, 2), "foo", "bar"));
+#endif
+    // Expect an error (chromeos warning) about extension pragmas after non-preprocessor tokens.
+    EXPECT_CALL(mDiagnostics, print(pp::Diagnostics::PP_NON_PP_TOKEN_BEFORE_EXTENSION_ESSL1, _, _));
 
     preprocess(str, expected);
 }
@@ -92,7 +96,7 @@
     // Directive successfully parsed.
     EXPECT_CALL(mDirectiveHandler, handleVersion(pp::SourceLocation(0, 1), 300, SH_GLES2_SPEC));
     // Expect an error about extension pragmas after non-preprocessor tokens.
-    EXPECT_CALL(mDiagnostics, print(pp::Diagnostics::PP_NON_PP_TOKEN_BEFORE_EXTENSION_ESSL, _, _));
+    EXPECT_CALL(mDiagnostics, print(pp::Diagnostics::PP_NON_PP_TOKEN_BEFORE_EXTENSION_ESSL3, _, _));
 
     preprocess(str, expected);
 }
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
index a762e18..6f64295 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.cpp
@@ -36,7 +36,8 @@
     if (sSavedMajorVersion == -1 || sSavedMinorVersion == -1)
     {
 #if defined(ANGLE_PLATFORM_WINDOWS)
-        OSVERSIONINFOEX version_info = {sizeof version_info};
+        OSVERSIONINFOEX version_info     = {};
+        version_info.dwOSVersionInfoSize = sizeof(version_info);
         ::GetVersionEx(reinterpret_cast<OSVERSIONINFO *>(&version_info));
         sSavedMajorVersion = version_info.dwMajorVersion;
         *majorVersion      = sSavedMajorVersion;
@@ -460,6 +461,12 @@
     return IsAndroidDevice("Pixel 2");
 }
 
+// Check whether the system is a Pixel 2XL device.
+inline bool IsPixel2XL()
+{
+    return IsAndroidDevice("Pixel 2 XL");
+}
+
 // Check whether the active GPU is a specific device based on the string device ID.
 inline bool IsDeviceIdGPU(const std::string &gpuDeviceId)
 {
@@ -517,6 +524,12 @@
     return (api == GPUTestConfig::kAPISwiftShader);
 }
 
+// Check whether the backend API has been set to Metal in the constructor
+inline bool IsMetal(const GPUTestConfig::API &api)
+{
+    return (api == GPUTestConfig::kAPIMetal);
+}
+
 }  // anonymous namespace
 
 // Load all conditions in the constructor since this data will not change during a test set.
@@ -549,27 +562,29 @@
     mConditions[kConditionRelease]         = IsRelease();
     mConditions[kConditionDebug]           = IsDebug();
     // If no API provided, pass these conditions by default
-    mConditions[kConditionD3D9]      = true;
-    mConditions[kConditionD3D11]     = true;
-    mConditions[kConditionGLDesktop] = true;
-    mConditions[kConditionGLES]      = true;
-    mConditions[kConditionVulkan]    = true;
+    mConditions[kConditionD3D9]        = true;
+    mConditions[kConditionD3D11]       = true;
+    mConditions[kConditionGLDesktop]   = true;
+    mConditions[kConditionGLES]        = true;
+    mConditions[kConditionVulkan]      = true;
     mConditions[kConditionSwiftShader] = true;
+    mConditions[kConditionMetal]       = true;
 
     mConditions[kConditionNexus5X]          = IsNexus5X();
-    mConditions[kConditionPixel2]           = IsPixel2();
+    mConditions[kConditionPixel2OrXL]       = IsPixel2() || IsPixel2XL();
     mConditions[kConditionNVIDIAQuadroP400] = IsNVIDIAQuadroP400();
 }
 
 // If the constructor is passed an API, load those conditions as well
 GPUTestConfig::GPUTestConfig(const API &api) : GPUTestConfig()
 {
-    mConditions[kConditionD3D9]      = IsD3D9(api);
-    mConditions[kConditionD3D11]     = IsD3D11(api);
-    mConditions[kConditionGLDesktop] = IsGLDesktop(api);
-    mConditions[kConditionGLES]      = IsGLES(api);
-    mConditions[kConditionVulkan]    = IsVulkan(api);
+    mConditions[kConditionD3D9]        = IsD3D9(api);
+    mConditions[kConditionD3D11]       = IsD3D11(api);
+    mConditions[kConditionGLDesktop]   = IsGLDesktop(api);
+    mConditions[kConditionGLES]        = IsGLES(api);
+    mConditions[kConditionVulkan]      = IsVulkan(api);
     mConditions[kConditionSwiftShader] = IsSwiftShader(api);
+    mConditions[kConditionMetal]       = IsMetal(api);
 }
 
 // Return a const reference to the list of all pre-calculated conditions.
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h
index d987ddf..8249f15 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig.h
@@ -7,7 +7,7 @@
 #ifndef TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_
 #define TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_
 
-#include <array>
+#include <common/bitset_utils.h>
 
 namespace angle
 {
@@ -24,6 +24,7 @@
         kAPIGLES,
         kAPIVulkan,
         kAPISwiftShader,
+        kAPIMetal,
     };
 
     enum Condition
@@ -59,15 +60,16 @@
         kConditionGLDesktop,
         kConditionGLES,
         kConditionVulkan,
+        kConditionMetal,
         kConditionNexus5X,
-        kConditionPixel2,
+        kConditionPixel2OrXL,
         kConditionNVIDIAQuadroP400,
         kConditionSwiftShader,
 
         kNumberOfConditions,
     };
 
-    typedef std::array<bool, GPUTestConfig::kNumberOfConditions> ConditionArray;
+    using ConditionArray = angle::BitSet<GPUTestConfig::kNumberOfConditions>;
 
     GPUTestConfig();
     GPUTestConfig(const API &api);
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig_mac.mm b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig_mac.mm
index c34ec8a..d1bc641 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig_mac.mm
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestConfig_mac.mm
@@ -10,6 +10,8 @@
 
 #import <Cocoa/Cocoa.h>
 
+#include "common/apple_platform_utils.h"
+
 // OSX 10.8 deprecates Gestalt but doesn't make the operatingSystemVersion property part of the
 // public interface of NSProcessInfo until 10.10. Add a forward declaration.
 #if !defined(MAC_OS_X_VERSION_10_10) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
@@ -27,7 +29,7 @@
     Gestalt(gestaltSystemVersionMajor, reinterpret_cast<SInt32 *>(majorVersion));
     Gestalt(gestaltSystemVersionMinor, reinterpret_cast<SInt32 *>(minorVersion));
 #else
-    if (@available(macOS 10.10, *))
+    if (ANGLE_APPLE_AVAILABLE_XC(10.10, 13.0))
     {
         NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion];
         *majorVersion                    = static_cast<int32_t>(version.majorVersion);
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
index e68c74e..173795a 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.cpp
@@ -71,6 +71,7 @@
     kConfigGLES,
     kConfigVulkan,
     kConfigSwiftShader,
+    kConfigMetal,
     // Android devices
     kConfigNexus5X,
     kConfigPixel2,
@@ -108,12 +109,28 @@
 
 struct TokenInfo
 {
+    constexpr TokenInfo()
+        : name(nullptr),
+          condition(GPUTestConfig::kConditionNone),
+          expectation(GPUTestExpectationsParser::kGpuTestPass)
+    {}
+
+    constexpr TokenInfo(const char *nameIn,
+                        GPUTestConfig::Condition conditionIn,
+                        GPUTestExpectationsParser::GPUTestExpectation expectationIn)
+        : name(nameIn), condition(conditionIn), expectation(expectationIn)
+    {}
+
+    constexpr TokenInfo(const char *nameIn, GPUTestConfig::Condition conditionIn)
+        : TokenInfo(nameIn, conditionIn, GPUTestExpectationsParser::kGpuTestPass)
+    {}
+
     const char *name;
     GPUTestConfig::Condition condition;
     GPUTestExpectationsParser::GPUTestExpectation expectation;
 };
 
-const TokenInfo kTokenData[kNumberOfTokens] = {
+constexpr TokenInfo kTokenData[kNumberOfTokens] = {
     {"xp", GPUTestConfig::kConditionWinXP},
     {"vista", GPUTestConfig::kConditionWinVista},
     {"win7", GPUTestConfig::kConditionWin7},
@@ -132,7 +149,7 @@
     {"mojave", GPUTestConfig::kConditionMacMojave},
     {"mac", GPUTestConfig::kConditionMac},
     {"linux", GPUTestConfig::kConditionLinux},
-    {"chromeos"},  // (https://anglebug.com/3363) ChromeOS not supported yet
+    {"chromeos", GPUTestConfig::kConditionNone},  // https://anglebug.com/3363 CrOS not supported
     {"android", GPUTestConfig::kConditionAndroid},
     {"nvidia", GPUTestConfig::kConditionNVIDIA},
     {"amd", GPUTestConfig::kConditionAMD},
@@ -146,19 +163,20 @@
     {"gles", GPUTestConfig::kConditionGLES},
     {"vulkan", GPUTestConfig::kConditionVulkan},
     {"swiftshader", GPUTestConfig::kConditionSwiftShader},
+    {"metal", GPUTestConfig::kConditionMetal},
     {"nexus5x", GPUTestConfig::kConditionNexus5X},
-    {"pixel2", GPUTestConfig::kConditionPixel2},
+    {"pixel2orxl", GPUTestConfig::kConditionPixel2OrXL},
     {"quadrop400", GPUTestConfig::kConditionNVIDIAQuadroP400},
     {"pass", GPUTestConfig::kConditionNone, GPUTestExpectationsParser::kGpuTestPass},
     {"fail", GPUTestConfig::kConditionNone, GPUTestExpectationsParser::kGpuTestFail},
     {"flaky", GPUTestConfig::kConditionNone, GPUTestExpectationsParser::kGpuTestFlaky},
     {"timeout", GPUTestConfig::kConditionNone, GPUTestExpectationsParser::kGpuTestTimeout},
     {"skip", GPUTestConfig::kConditionNone, GPUTestExpectationsParser::kGpuTestSkip},
-    {":"},  // kSeparatorColon
-    {"="},  // kSeparatorEqual
-    {},     // kNumberOfExactMatchTokens
-    {},     // kTokenComment
-    {},     // kTokenWord
+    {":", GPUTestConfig::kConditionNone},  // kSeparatorColon
+    {"=", GPUTestConfig::kConditionNone},  // kSeparatorEqual
+    {},                                    // kNumberOfExactMatchTokens
+    {},                                    // kTokenComment
+    {},                                    // kTokenWord
 };
 
 const char *kErrorMessage[kNumberOfErrors] = {
@@ -252,6 +270,27 @@
 
 }  // anonymous namespace
 
+const char *GetConditionName(uint32_t condition)
+{
+    if (condition == GPUTestConfig::kConditionNone)
+    {
+        return nullptr;
+    }
+
+    for (const TokenInfo &info : kTokenData)
+    {
+        if (info.condition == condition)
+        {
+            // kConditionNone is used to tag tokens that aren't conditions, but this case has been
+            // handled above.
+            ASSERT(info.condition != GPUTestConfig::kConditionNone);
+            return info.name;
+        }
+    }
+
+    return nullptr;
+}
+
 GPUTestExpectationsParser::GPUTestExpectationsParser()
 {
     // Some sanity check.
@@ -395,6 +434,7 @@
             case kConfigGLES:
             case kConfigVulkan:
             case kConfigSwiftShader:
+            case kConfigMetal:
             case kConfigNexus5X:
             case kConfigPixel2:
             case kConfigNVIDIAQuadroP400:
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.h b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.h
index 18dceaf..7c878e5 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser.h
@@ -86,6 +86,8 @@
     std::vector<std::string> mErrorMessages;
 };
 
+const char *GetConditionName(uint32_t condition);
+
 }  // namespace angle
 
 #endif  // TEST_EXPECTATIONS_GPU_TEST_EXPECTATIONS_PARSER_H_
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp
index 41221d0..64751b1 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp
@@ -20,10 +20,7 @@
   public:
     GPUTestConfigTester()
     {
-        for (bool &condition : mConditions)
-        {
-            condition = false;
-        }
+        mConditions.reset();
         mConditions[GPUTestConfig::kConditionWin]    = true;
         mConditions[GPUTestConfig::kConditionNVIDIA] = true;
         mConditions[GPUTestConfig::kConditionD3D11]  = true;
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsTest.cpp b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsTest.cpp
index e5d15e7..05df027 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsTest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_expectations/GPUTestExpectationsTest.cpp
@@ -27,7 +27,8 @@
         EXPECT_EQ(IsLinux(), config.getConditions()[GPUTestConfig::kConditionLinux]);
         EXPECT_EQ(IsAndroid(), config.getConditions()[GPUTestConfig::kConditionAndroid]);
         EXPECT_EQ(IsNexus5X(), config.getConditions()[GPUTestConfig::kConditionNexus5X]);
-        EXPECT_EQ(IsPixel2(), config.getConditions()[GPUTestConfig::kConditionPixel2]);
+        EXPECT_EQ((IsPixel2() || IsPixel2XL()),
+                  config.getConditions()[GPUTestConfig::kConditionPixel2OrXL]);
         EXPECT_EQ(IsIntel(), config.getConditions()[GPUTestConfig::kConditionIntel]);
         EXPECT_EQ(IsAMD(), config.getConditions()[GPUTestConfig::kConditionAMD]);
         EXPECT_EQ(IsNVIDIA(), config.getConditions()[GPUTestConfig::kConditionNVIDIA]);
@@ -42,6 +43,7 @@
         bool GLDesktop = false;
         bool GLES      = false;
         bool Vulkan    = false;
+        bool Metal     = false;
         switch (api)
         {
             case GPUTestConfig::kAPID3D9:
@@ -59,6 +61,9 @@
             case GPUTestConfig::kAPIVulkan:
                 Vulkan = true;
                 break;
+            case GPUTestConfig::kAPIMetal:
+                Metal = true;
+                break;
             case GPUTestConfig::kAPIUnknown:
             default:
                 break;
@@ -68,6 +73,7 @@
         EXPECT_EQ(GLDesktop, config.getConditions()[GPUTestConfig::kConditionGLDesktop]);
         EXPECT_EQ(GLES, config.getConditions()[GPUTestConfig::kConditionGLES]);
         EXPECT_EQ(Vulkan, config.getConditions()[GPUTestConfig::kConditionVulkan]);
+        EXPECT_EQ(Metal, config.getConditions()[GPUTestConfig::kConditionMetal]);
     }
 };
 
@@ -93,6 +99,12 @@
     validateConfigAPI(config, GPUTestConfig::kAPID3D11);
 }
 
+TEST_P(GPUTestConfigTest, GPUTestConfigConditions_Metal)
+{
+    GPUTestConfig config(GPUTestConfig::kAPIMetal);
+    validateConfigAPI(config, GPUTestConfig::kAPIMetal);
+}
+
 TEST_P(GPUTestConfigTest, GPUTestConfigConditions_GLDesktop)
 {
     GPUTestConfig config(GPUTestConfig::kAPIGLDesktop);
@@ -113,14 +125,6 @@
 
 // Use this to select which configurations (e.g. which renderer, which GLES major version) these
 // tests should be run against.
-ANGLE_INSTANTIATE_TEST(GPUTestConfigTest,
-                       ES2_D3D9(),
-                       ES2_D3D11(),
-                       ES3_D3D11(),
-                       ES2_OPENGL(),
-                       ES3_OPENGL(),
-                       ES2_OPENGLES(),
-                       ES3_OPENGLES(),
-                       ES2_VULKAN());
+ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(GPUTestConfigTest);
 
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
index 993185b0..db077ce 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.cpp
@@ -320,15 +320,15 @@
         std::vector<const char *> childArgs = commonArgs;
         childArgs.push_back(configStr.c_str());
 
-        int exitCode = 0;
-        if (!RunApp(childArgs, nullptr, nullptr, &exitCode))
+        ProcessHandle process(childArgs, false, false);
+        if (!process->started() || !process->finish())
         {
             std::cerr << "Launching child config " << config << " failed.\n";
         }
-        else if (exitCode != 0)
+        else if (process->getExitCode() != 0)
         {
-            std::cerr << "Child config " << config << " failed with exit code " << exitCode
-                      << ".\n";
+            std::cerr << "Child config " << config << " failed with exit code "
+                      << process->getExitCode() << ".\n";
             success = false;
         }
     }
@@ -481,7 +481,7 @@
 {
     mSetUpCalled = true;
 
-    InitCrashHandler();
+    InitCrashHandler(nullptr);
 
     gDefaultPlatformMethods.overrideWorkaroundsD3D = TestPlatform_overrideWorkaroundsD3D;
     gDefaultPlatformMethods.overrideFeaturesVk     = TestPlatform_overrideFeaturesVk;
@@ -1280,6 +1280,13 @@
     return (rendererString.find("Vulkan") != std::string::npos);
 }
 
+bool IsMetal()
+{
+    const char *renderer = reinterpret_cast<const char *>(glGetString(GL_RENDERER));
+    std::string rendererString(renderer);
+    return (rendererString.find("Metal") != std::string::npos);
+}
+
 bool IsDebug()
 {
 #if !defined(NDEBUG)
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
index 6494bfe..09f4dc0c 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
@@ -123,6 +123,15 @@
     static const GLColor magenta;
 };
 
+struct GLColor16UI
+{
+    constexpr GLColor16UI() : GLColor16UI(0, 0, 0, 0) {}
+    constexpr GLColor16UI(GLushort r, GLushort g, GLushort b, GLushort a) : R(r), G(g), B(b), A(a)
+    {}
+
+    GLushort R, G, B, A;
+};
+
 struct GLColor32F
 {
     constexpr GLColor32F() : GLColor32F(0.0f, 0.0f, 0.0f, 0.0f) {}
@@ -168,6 +177,11 @@
 std::ostream &operator<<(std::ostream &ostream, const GLColor32F &color);
 GLColor32F ReadColor32F(GLint x, GLint y);
 
+constexpr std::array<GLenum, 6> kCubeFaces = {
+    {GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+     GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+     GL_TEXTURE_CUBE_MAP_NEGATIVE_Z}};
+
 }  // namespace angle
 
 #define EXPECT_PIXEL_EQ(x, y, r, g, b, a) \
@@ -246,6 +260,12 @@
 #define EXPECT_PIXEL_8UI(x, y, r, g, b, a) \
     EXPECT_PIXEL_EQ_HELPER(x, y, r, g, b, a, GLubyte, GL_RGBA_INTEGER, GL_UNSIGNED_BYTE)
 
+#define EXPECT_PIXEL_16UI(x, y, r, g, b, a) \
+    EXPECT_PIXEL_EQ_HELPER(x, y, r, g, b, a, GLushort, GL_RGBA, GL_UNSIGNED_SHORT)
+
+#define EXPECT_PIXEL_16UI_COLOR(x, y, color) \
+    EXPECT_PIXEL_16UI(x, y, color.R, color.G, color.B, color.A)
+
 #define EXPECT_PIXEL_RGB_EQUAL(x, y, r, g, b) \
     EXPECT_PIXEL_RGB_EQ_HELPER(x, y, r, g, b, GLubyte, GL_RGBA, GL_UNSIGNED_BYTE)
 
@@ -306,6 +326,12 @@
 
     static void ReleaseFixtures();
 
+    bool isSwiftshader() const
+    {
+        return mCurrentParams->eglParameters.deviceType ==
+               EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE;
+    }
+
   protected:
     void ANGLETestSetUp();
     void ANGLETestTearDown();
@@ -576,6 +602,7 @@
 bool IsOpenGL();
 bool IsNULL();
 bool IsVulkan();
+bool IsMetal();
 
 // Debug/Release
 bool IsDebug();
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.cpp b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.cpp
index ccd67b8..affb526 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.cpp
@@ -87,6 +87,9 @@
                 case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE:
                     stream << "D3D11";
                     break;
+                case EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE:
+                    stream << "Metal";
+                    break;
                 case EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE:
                     stream << "Null";
                     break;
@@ -407,6 +410,11 @@
     return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
                                  EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE);
 }
+EGLPlatformParameters METAL()
+{
+    return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE);
+}
+
 }  // namespace egl_platform
 
 // ANGLE tests platforms
@@ -660,6 +668,11 @@
     return PlatformParameters(1, 0, egl_platform::VULKAN_NULL());
 }
 
+PlatformParameters ES1_VULKAN_SWIFTSHADER()
+{
+    return PlatformParameters(1, 0, egl_platform::VULKAN_SWIFTSHADER());
+}
+
 PlatformParameters ES2_VULKAN()
 {
     return PlatformParameters(2, 0, egl_platform::VULKAN());
@@ -685,6 +698,11 @@
     return PlatformParameters(3, 0, egl_platform::VULKAN_NULL());
 }
 
+PlatformParameters ES3_VULKAN_SWIFTSHADER()
+{
+    return PlatformParameters(3, 0, egl_platform::VULKAN_SWIFTSHADER());
+}
+
 PlatformParameters ES31_VULKAN()
 {
     return PlatformParameters(3, 1, egl_platform::VULKAN());
@@ -695,6 +713,26 @@
     return PlatformParameters(3, 1, egl_platform::VULKAN_NULL());
 }
 
+PlatformParameters ES31_VULKAN_SWIFTSHADER()
+{
+    return PlatformParameters(3, 1, egl_platform::VULKAN_SWIFTSHADER());
+}
+
+PlatformParameters ES1_METAL()
+{
+    return PlatformParameters(1, 0, egl_platform::METAL());
+}
+
+PlatformParameters ES2_METAL()
+{
+    return PlatformParameters(2, 0, egl_platform::METAL());
+}
+
+PlatformParameters ES3_METAL()
+{
+    return PlatformParameters(3, 0, egl_platform::METAL());
+}
+
 PlatformParameters ES2_WGL()
 {
     return PlatformParameters(2, 0, GLESDriverType::SystemWGL);
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.h b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.h
index ca4d450..801582f 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_configs.h
@@ -174,13 +174,20 @@
 
 PlatformParameters ES1_VULKAN();
 PlatformParameters ES1_VULKAN_NULL();
+PlatformParameters ES1_VULKAN_SWIFTSHADER();
 PlatformParameters ES2_VULKAN();
 PlatformParameters ES2_VULKAN_NULL();
 PlatformParameters ES2_VULKAN_SWIFTSHADER();
 PlatformParameters ES3_VULKAN();
 PlatformParameters ES3_VULKAN_NULL();
+PlatformParameters ES3_VULKAN_SWIFTSHADER();
 PlatformParameters ES31_VULKAN();
 PlatformParameters ES31_VULKAN_NULL();
+PlatformParameters ES31_VULKAN_SWIFTSHADER();
+
+PlatformParameters ES1_METAL();
+PlatformParameters ES2_METAL();
+PlatformParameters ES3_METAL();
 
 PlatformParameters ES2_WGL();
 PlatformParameters ES3_WGL();
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cpp b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cpp
index 8a1d690..6ba8096 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cpp
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cpp
@@ -26,6 +26,10 @@
 #    include "util/windows/WGLWindow.h"
 #endif  // defined(ANGLE_PLATFORM_WINDOWS)
 
+#if defined(ANGLE_PLATFORM_APPLE)
+#    include "test_utils/angle_test_instantiate_apple.h"
+#endif
+
 namespace angle
 {
 namespace
@@ -222,6 +226,11 @@
     return IsAndroidDevice("Pixel 2");
 }
 
+bool IsPixel2XL()
+{
+    return IsAndroidDevice("Pixel 2 XL");
+}
+
 bool IsNVIDIAShield()
 {
     return IsAndroidDevice("SHIELD Android TV");
@@ -295,6 +304,7 @@
         }
     }
 
+#if defined(ANGLE_PLATFORM_APPLE)
     if (IsOSX())
     {
         // We do not support non-ANGLE bindings on OSX.
@@ -309,9 +319,19 @@
             return false;
         }
 
-        // Currently we only support the OpenGL back-end on OSX.
-        return (param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE);
+        if (param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE &&
+            (!IsMetalRendererAvailable() || IsIntel(vendorID)))
+        {
+            // TODO(hqle): Intel metal tests seem to have problems. Disable for now.
+            // http://anglebug.com/4133
+            return false;
+        }
+
+        // Currently we only support the OpenGL & Metal back-end on OSX.
+        return (param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE ||
+                param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE);
     }
+#endif  // #if defined(ANGLE_PLATFORM_APPLE)
 
     if (IsFuchsia())
     {
@@ -449,6 +469,22 @@
         case EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE:
 #if !defined(ANGLE_ENABLE_VULKAN)
             return false;
+#elif defined(ANGLE_IS_32_BIT_CPU)
+            // http://anglebug.com/4092
+            //  Currently hitting crashes in SwS w/ 32-bit Windows so skipping for now
+            if (IsWindows() && (param.eglParameters.deviceType ==
+                                EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE))
+            {
+                return false;
+            }
+            break;
+#else
+            break;
+#endif
+
+        case EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE:
+#if !defined(ANGLE_ENABLE_METAL)
+            return false;
 #else
             break;
 #endif
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.h b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.h
index 910e7d3..d58f3b6 100644
--- a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.h
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.h
@@ -32,6 +32,7 @@
 bool IsNexus9();
 bool IsPixelXL();
 bool IsPixel2();
+bool IsPixel2XL();
 bool IsNVIDIAShield();
 
 // Desktop devices.
@@ -88,8 +89,9 @@
     }
 };
 
-#define ANGLE_INSTANTIATE_TEST_PLATFORMS(testName) \
-    testing::ValuesIn(::angle::FilterTestParams(testName##params, ArraySize(testName##params)))
+#define ANGLE_INSTANTIATE_TEST_PLATFORMS(testName, ...)                        \
+    testing::ValuesIn(::angle::FilterTestParams(testName##__VA_ARGS__##params, \
+                                                ArraySize(testName##__VA_ARGS__##params)))
 
 // Instantiate the test once for each extra argument. The types of all the
 // arguments must match, and getRenderer must be implemented for that type.
@@ -98,6 +100,71 @@
     INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
                              testing::PrintToStringParamName())
 
+#define ANGLE_ALL_TEST_PLATFORMS_ES1 \
+    ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES(), ES1_VULKAN(), ES1_VULKAN_SWIFTSHADER()
+
+#define ANGLE_ALL_TEST_PLATFORMS_ES2 \
+    ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN(), ES2_VULKAN_SWIFTSHADER()
+
+#define ANGLE_ALL_TEST_PLATFORMS_ES3 \
+    ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN(), ES3_VULKAN_SWIFTSHADER()
+
+#define ANGLE_ALL_TEST_PLATFORMS_ES31 \
+    ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES(), ES31_VULKAN(), ES31_VULKAN_SWIFTSHADER()
+
+#define ANGLE_ALL_TEST_PLATFORMS_NULL ES2_NULL(), ES3_NULL(), ES31_NULL()
+
+// Instantiate the test once for each GLES1 platform
+#define ANGLE_INSTANTIATE_TEST_ES1(testName)                                         \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES1};    \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+// Instantiate the test once for each GLES2 platform
+#define ANGLE_INSTANTIATE_TEST_ES2(testName)                                         \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES2};    \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+// Instantiate the test once for each GLES3 platform
+#define ANGLE_INSTANTIATE_TEST_ES3(testName)                                         \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES3};    \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+// Instantiate the test once for each GLES31 platform
+#define ANGLE_INSTANTIATE_TEST_ES31(testName)                                        \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES31};   \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+// Multiple ES Version macros
+#define ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(testName)                                 \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES2,     \
+                                                   ANGLE_ALL_TEST_PLATFORMS_ES3};    \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+#define ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND_ES31(testName)                        \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES2,     \
+                                                   ANGLE_ALL_TEST_PLATFORMS_ES3,     \
+                                                   ANGLE_ALL_TEST_PLATFORMS_ES31};   \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
+#define ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND_ES31_AND_NULL(testName)                             \
+    const PlatformParameters testName##params[] = {                                                \
+        ANGLE_ALL_TEST_PLATFORMS_ES2, ANGLE_ALL_TEST_PLATFORMS_ES3, ANGLE_ALL_TEST_PLATFORMS_ES31, \
+        ANGLE_ALL_TEST_PLATFORMS_NULL};                                                            \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName),               \
+                             testing::PrintToStringParamName())
+
+#define ANGLE_INSTANTIATE_TEST_ES3_AND_ES31(testName)                                \
+    const PlatformParameters testName##params[] = {ANGLE_ALL_TEST_PLATFORMS_ES3,     \
+                                                   ANGLE_ALL_TEST_PLATFORMS_ES31};   \
+    INSTANTIATE_TEST_SUITE_P(, testName, ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \
+                             testing::PrintToStringParamName())
+
 // Instantiate the test for a combination of N parameters and the enumeration of platforms in the
 // extra args, similar to ANGLE_INSTANTIATE_TEST.  The macros are defined only for the Ns currently
 // in use, and can be expanded as necessary.
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.h b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.h
new file mode 100644
index 0000000..0a29a3a
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.h
@@ -0,0 +1,19 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// This file includes APIs to detect whether certain Apple renderer is availabe for testing.
+//
+
+#ifndef ANGLE_TEST_INSTANTIATE_APPLE_H_
+#define ANGLE_TEST_INSTANTIATE_APPLE_H_
+
+namespace angle
+{
+
+bool IsMetalRendererAvailable();
+
+}  // namespace angle
+
+#endif  // ANGLE_TEST_INSTANTIATE_APPLE_H_
diff --git a/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.mm b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.mm
new file mode 100644
index 0000000..f8e7cd8
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate_apple.mm
@@ -0,0 +1,27 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// This file includes APIs to detect whether certain Apple renderer is availabe for testing.
+//
+
+#include "test_utils/angle_test_instantiate_apple.h"
+
+#include "common/apple_platform_utils.h"
+
+namespace angle
+{
+
+bool IsMetalRendererAvailable()
+{
+    // NOTE(hqle): This code is currently duplicated with rx::IsMetalDisplayAvailable().
+    // Consider move it to a common source code accessible to both libANGLE and test apps.
+    if (ANGLE_APPLE_AVAILABLE_XCI(10.13, 13.0, 11))
+    {
+        return true;
+    }
+    return false;
+}
+
+}  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/src/third_party/compiler/README.chromium b/Source/ThirdParty/ANGLE/src/third_party/compiler/README.chromium
index e69de29..4fdf757 100644
--- a/Source/ThirdParty/ANGLE/src/third_party/compiler/README.chromium
+++ b/Source/ThirdParty/ANGLE/src/third_party/compiler/README.chromium
@@ -0,0 +1,12 @@
+Name: ANGLE array bounds clamper from WebKit
+Short Name: WebKit
+URL: http://webkit.org
+Version: 0
+License: BSD
+Security Critical: yes
+
+Description:
+Implements clamping of array indexing expressions during shader translation.
+
+Local Modifications:
+None
diff --git a/Source/ThirdParty/ANGLE/third_party/VK-GL-CTS/README.angle b/Source/ThirdParty/ANGLE/third_party/VK-GL-CTS/README.angle
new file mode 100644
index 0000000..1fda485
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/third_party/VK-GL-CTS/README.angle
@@ -0,0 +1,15 @@
+Name: Khronos dEQP / CTS
+Short Name: VK-GL-CTS
+Version: 1.0
+URL: https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS
+SOURCE CODE: git clone -b VK-GL-CTS https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS
+Date: 20/06/2016
+Revision: f4f3d8079e7a37d7675ab93583e6438d0bca0e58
+Security Critical: no
+License: Apache 2.0
+License File: LICENSE
+
+Description:
+VK-GL-CTS (formally dEQP) is a set of tests and testing tools for GPUs and their drivers. It
+currently supports OpenGL ES 2.0 - 3.1 & AEP, EGL and Vulkan (though ANGLE only uses the GLES
+pieces). The dEQP has been part of the Android CTS since the L release.
diff --git a/Source/ThirdParty/ANGLE/third_party/deqp/README.angle b/Source/ThirdParty/ANGLE/third_party/deqp/README.angle
deleted file mode 100644
index 40bc066..0000000
--- a/Source/ThirdParty/ANGLE/third_party/deqp/README.angle
+++ /dev/null
@@ -1,13 +0,0 @@
-Name: drawElements Quality Program
-Short Name: dEQP
-Version: 1.0
-URL: https://source.android.com/devices/graphics/testing.html
-SOURCE CODE: git clone -b deqp-dev https://android.googlesource.com/platform/external/deqp/
-Date: 20/06/2016
-Revision: f4f3d8079e7a37d7675ab93583e6438d0bca0e58
-Security Critical: no
-License: Apache 2.0
-License File: LICENSE
-
-Description:
-dEQP is a set of tests and testing tools for GPUs and their drivers. It currently supports OpenGL ES 2.0 - 3.1 & AEP and EGL. The dEQP has been part of the Android CTS since the L release.
diff --git a/Source/ThirdParty/ANGLE/third_party/googletest/README.angle b/Source/ThirdParty/ANGLE/third_party/googletest/README.angle
deleted file mode 100644
index 76a0cb4..0000000
--- a/Source/ThirdParty/ANGLE/third_party/googletest/README.angle
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: Google Test: Google's C++ Testing Framework
-Short Name: googletest
-URL: https://github.com/google/googletest.git
-Version: 1.8.0.git-7f8fefabedf2965980585be8c2bff97458f28e0b
-License: BSD
-License File: NOT_SHIPPED
-Security critical: no
diff --git a/Source/ThirdParty/ANGLE/third_party/libpng/BUILD.gn b/Source/ThirdParty/ANGLE/third_party/libpng/BUILD.gn
index e570159..89bdd63 100644
--- a/Source/ThirdParty/ANGLE/third_party/libpng/BUILD.gn
+++ b/Source/ThirdParty/ANGLE/third_party/libpng/BUILD.gn
@@ -24,6 +24,13 @@
     "src/pngwtran.c",
     "src/pngwutil.c",
   ]
+  if (target_cpu == "arm") {
+    sources += [
+      "src/arm/arm_init.c",
+      "src/arm/filter_neon.S",
+      "src/arm/filter_neon_intrinsics.c",
+    ]
+  }
   if (is_win) {
     cflags = [ "/wd4028" ]
   }
diff --git a/Source/ThirdParty/ANGLE/third_party/spirv-cross/README.angle b/Source/ThirdParty/ANGLE/third_party/spirv-cross/README.angle
new file mode 100644
index 0000000..9e9f1d9
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/third_party/spirv-cross/README.angle
@@ -0,0 +1,10 @@
+Name: Khronos SPIRV-Cross
+Short Name: spirv-cross
+URL: https://github.com/KhronosGroup/SPIRV-Cross
+Version: N/A
+Security Critical: yes
+License: Apache 2.0
+License File: LICENSE
+
+Description:
+A tool designed for parsing and converting SPIR-V to other shader languages.
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/util/OSWindow.h b/Source/ThirdParty/ANGLE/util/OSWindow.h
index 828b48e..671270f 100644
--- a/Source/ThirdParty/ANGLE/util/OSWindow.h
+++ b/Source/ThirdParty/ANGLE/util/OSWindow.h
@@ -25,8 +25,8 @@
     static OSWindow *New();
     static void Delete(OSWindow **osWindow);
 
-    virtual bool initialize(const std::string &name, int width, int height)       = 0;
-    virtual void destroy()                                                        = 0;
+    virtual bool initialize(const std::string &name, int width, int height) = 0;
+    virtual void destroy()                                                  = 0;
 
     int getX() const;
     int getY() const;
@@ -66,7 +66,6 @@
   protected:
     OSWindow();
     virtual ~OSWindow();
-    friend ANGLE_UTIL_EXPORT void FreeOSWindow(OSWindow *window);
 
     int mX;
     int mY;
diff --git a/Source/ThirdParty/ANGLE/util/egl_loader_autogen.cpp b/Source/ThirdParty/ANGLE/util/egl_loader_autogen.cpp
index 45f4be3..bb9457d 100644
--- a/Source/ThirdParty/ANGLE/util/egl_loader_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/util/egl_loader_autogen.cpp
@@ -76,6 +76,7 @@
 ANGLE_UTIL_EXPORT PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
     eglCreateStreamProducerD3DTextureANGLE;
 ANGLE_UTIL_EXPORT PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC eglStreamPostD3DTextureANGLE;
+ANGLE_UTIL_EXPORT PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC eglSwapBuffersWithFrameTokenANGLE;
 ANGLE_UTIL_EXPORT PFNEGLGETSYNCVALUESCHROMIUMPROC eglGetSyncValuesCHROMIUM;
 ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
 ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
@@ -210,6 +211,8 @@
             loadProc("eglCreateStreamProducerD3DTextureANGLE"));
     eglStreamPostD3DTextureANGLE = reinterpret_cast<PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC>(
         loadProc("eglStreamPostD3DTextureANGLE"));
+    eglSwapBuffersWithFrameTokenANGLE = reinterpret_cast<PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC>(
+        loadProc("eglSwapBuffersWithFrameTokenANGLE"));
     eglGetSyncValuesCHROMIUM =
         reinterpret_cast<PFNEGLGETSYNCVALUESCHROMIUMPROC>(loadProc("eglGetSyncValuesCHROMIUM"));
     eglQueryDeviceAttribEXT =
diff --git a/Source/ThirdParty/ANGLE/util/egl_loader_autogen.h b/Source/ThirdParty/ANGLE/util/egl_loader_autogen.h
index a21ee1f..2946a94 100644
--- a/Source/ThirdParty/ANGLE/util/egl_loader_autogen.h
+++ b/Source/ThirdParty/ANGLE/util/egl_loader_autogen.h
@@ -83,6 +83,7 @@
 ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
     eglCreateStreamProducerD3DTextureANGLE;
 ANGLE_UTIL_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC eglStreamPostD3DTextureANGLE;
+ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC eglSwapBuffersWithFrameTokenANGLE;
 ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC eglGetSyncValuesCHROMIUM;
 ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
 ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
diff --git a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
index 008dac3..7507352 100644
--- a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
+++ b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.cpp
@@ -18,7 +18,6 @@
 #include <lib/fidl/cpp/interface_request.h>
 #include <lib/ui/scenic/cpp/view_token_pair.h>
 #include <lib/zx/channel.h>
-#include <vulkan/vulkan.h>
 #include <zircon/status.h>
 
 #include "common/debug.h"
@@ -26,36 +25,6 @@
 namespace
 {
 
-uint32_t GetImagePipeSwapchainLayerImplementationVersion()
-{
-    uint32_t numInstanceLayers = 0;
-    VkResult result            = vkEnumerateInstanceLayerProperties(&numInstanceLayers, nullptr);
-    if (result != VK_SUCCESS)
-    {
-        return 0u;
-    }
-
-    std::vector<VkLayerProperties> instanceLayers(numInstanceLayers);
-    result = vkEnumerateInstanceLayerProperties(&numInstanceLayers, instanceLayers.data());
-    if (result != VK_SUCCESS)
-    {
-        return 0u;
-    }
-
-    uint32_t imagePipeSwapchainImplementationVersion = 0;
-    const std::string layerName                      = "VK_LAYER_FUCHSIA_imagepipe_swapchain";
-    for (const VkLayerProperties &layerProperty : instanceLayers)
-    {
-        if (layerName.compare(layerProperty.layerName) != 0)
-            continue;
-        imagePipeSwapchainImplementationVersion = layerProperty.implementationVersion;
-        break;
-    }
-
-    ASSERT(imagePipeSwapchainImplementationVersion > 0u);
-    return imagePipeSwapchainImplementationVersion;
-}
-
 async::Loop *GetDefaultLoop()
 {
     static async::Loop *defaultLoop = new async::Loop(&kAsyncLoopConfigAttachToCurrentThread);
@@ -138,20 +107,11 @@
 
 void ScenicWindow::resetNativeWindow()
 {
-    zx_handle_t imagePipeHandle = 0;
-    uint32_t imagePipeId        = mScenicSession.AllocResourceId();
-    if (GetImagePipeSwapchainLayerImplementationVersion() > 1u)
-    {
-        fuchsia::images::ImagePipe2Ptr imagePipe;
-        mScenicSession.Enqueue(scenic::NewCreateImagePipe2Cmd(imagePipeId, imagePipe.NewRequest()));
-        imagePipeHandle = imagePipe.Unbind().TakeChannel().release();
-    }
-    else
-    {
-        fuchsia::images::ImagePipePtr imagePipe;
-        mScenicSession.Enqueue(scenic::NewCreateImagePipeCmd(imagePipeId, imagePipe.NewRequest()));
-        imagePipeHandle = imagePipe.Unbind().TakeChannel().release();
-    }
+    fuchsia::images::ImagePipe2Ptr imagePipe;
+    uint32_t imagePipeId = mScenicSession.AllocResourceId();
+    mScenicSession.Enqueue(scenic::NewCreateImagePipe2Cmd(imagePipeId, imagePipe.NewRequest()));
+    zx_handle_t imagePipeHandle = imagePipe.Unbind().TakeChannel().release();
+
     mMaterial.SetTexture(imagePipeId);
     mScenicSession.ReleaseResource(imagePipeId);
     mScenicSession.Present(0, [](fuchsia::images::PresentationInfo info) {});
diff --git a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.h b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.h
index ac2cd8e..e8e14a92 100644
--- a/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.h
+++ b/Source/ThirdParty/ANGLE/util/fuchsia/ScenicWindow.h
@@ -10,6 +10,13 @@
 #ifndef UTIL_FUCHSIA_SCENIC_WINDOW_H
 #define UTIL_FUCHSIA_SCENIC_WINDOW_H
 
+#include "common/debug.h"
+#include "util/OSWindow.h"
+#include "util/util_export.h"
+
+// Disable ANGLE-specific warnings that pop up in fuchsia headers.
+ANGLE_DISABLE_DESTRUCTOR_OVERRIDE_WARNING
+
 #include <fuchsia/ui/policy/cpp/fidl.h>
 #include <fuchsia/ui/scenic/cpp/fidl.h>
 #include <fuchsia_egl.h>
@@ -20,8 +27,7 @@
 #include <zircon/types.h>
 #include <string>
 
-#include "util/OSWindow.h"
-#include "util/util_export.h"
+ANGLE_REENABLE_DESTRUCTOR_OVERRIDE_WARNING
 
 struct FuchsiaEGLWindowDeleter
 {
@@ -32,7 +38,7 @@
 {
   public:
     ScenicWindow();
-    ~ScenicWindow();
+    ~ScenicWindow() override;
 
     // OSWindow:
     bool initialize(const std::string &name, int width, int height) override;
diff --git a/Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp b/Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
index 99a1595..fd8e377 100644
--- a/Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
+++ b/Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
@@ -424,6 +424,8 @@
 ANGLE_UTIL_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC glBlitFramebufferANGLE;
 ANGLE_UTIL_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC
     glRenderbufferStorageMultisampleANGLE;
+ANGLE_UTIL_EXPORT PFNGLGETRENDERBUFFERIMAGEANGLEPROC glGetRenderbufferImageANGLE;
+ANGLE_UTIL_EXPORT PFNGLGETTEXIMAGEANGLEPROC glGetTexImageANGLE;
 ANGLE_UTIL_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC glDrawArraysInstancedANGLE;
 ANGLE_UTIL_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC glDrawElementsInstancedANGLE;
 ANGLE_UTIL_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC glVertexAttribDivisorANGLE;
@@ -432,6 +434,7 @@
 ANGLE_UTIL_EXPORT PFNGLMULTIDRAWELEMENTSANGLEPROC glMultiDrawElementsANGLE;
 ANGLE_UTIL_EXPORT PFNGLMULTIDRAWELEMENTSINSTANCEDANGLEPROC glMultiDrawElementsInstancedANGLE;
 ANGLE_UTIL_EXPORT PFNGLPROVOKINGVERTEXANGLEPROC glProvokingVertexANGLE;
+ANGLE_UTIL_EXPORT PFNGLDISABLEEXTENSIONANGLEPROC glDisableExtensionANGLE;
 ANGLE_UTIL_EXPORT PFNGLREQUESTEXTENSIONANGLEPROC glRequestExtensionANGLE;
 ANGLE_UTIL_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLEPROC glCompressedTexImage2DRobustANGLE;
 ANGLE_UTIL_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DROBUSTANGLEPROC glCompressedTexImage3DRobustANGLE;
@@ -1131,6 +1134,9 @@
 ANGLE_UTIL_EXPORT PFNGLBLITFRAMEBUFFERANGLECONTEXTANGLEPROC glBlitFramebufferANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLECONTEXTANGLEPROC
     glRenderbufferStorageMultisampleANGLEContextANGLE;
+ANGLE_UTIL_EXPORT PFNGLGETRENDERBUFFERIMAGEANGLECONTEXTANGLEPROC
+    glGetRenderbufferImageANGLEContextANGLE;
+ANGLE_UTIL_EXPORT PFNGLGETTEXIMAGEANGLECONTEXTANGLEPROC glGetTexImageANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLECONTEXTANGLEPROC
     glDrawArraysInstancedANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC
@@ -1144,6 +1150,7 @@
 ANGLE_UTIL_EXPORT PFNGLMULTIDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC
     glMultiDrawElementsInstancedANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLPROVOKINGVERTEXANGLECONTEXTANGLEPROC glProvokingVertexANGLEContextANGLE;
+ANGLE_UTIL_EXPORT PFNGLDISABLEEXTENSIONANGLECONTEXTANGLEPROC glDisableExtensionANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLREQUESTEXTENSIONANGLECONTEXTANGLEPROC glRequestExtensionANGLEContextANGLE;
 ANGLE_UTIL_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLECONTEXTANGLEPROC
     glCompressedTexImage2DRobustANGLEContextANGLE;
@@ -2092,6 +2099,10 @@
     glRenderbufferStorageMultisampleANGLE =
         reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC>(
             loadProc("glRenderbufferStorageMultisampleANGLE"));
+    glGetRenderbufferImageANGLE = reinterpret_cast<PFNGLGETRENDERBUFFERIMAGEANGLEPROC>(
+        loadProc("glGetRenderbufferImageANGLE"));
+    glGetTexImageANGLE =
+        reinterpret_cast<PFNGLGETTEXIMAGEANGLEPROC>(loadProc("glGetTexImageANGLE"));
     glDrawArraysInstancedANGLE =
         reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDANGLEPROC>(loadProc("glDrawArraysInstancedANGLE"));
     glDrawElementsInstancedANGLE = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDANGLEPROC>(
@@ -2108,6 +2119,8 @@
         loadProc("glMultiDrawElementsInstancedANGLE"));
     glProvokingVertexANGLE =
         reinterpret_cast<PFNGLPROVOKINGVERTEXANGLEPROC>(loadProc("glProvokingVertexANGLE"));
+    glDisableExtensionANGLE =
+        reinterpret_cast<PFNGLDISABLEEXTENSIONANGLEPROC>(loadProc("glDisableExtensionANGLE"));
     glRequestExtensionANGLE =
         reinterpret_cast<PFNGLREQUESTEXTENSIONANGLEPROC>(loadProc("glRequestExtensionANGLE"));
     glCompressedTexImage2DRobustANGLE = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLEPROC>(
@@ -3473,6 +3486,11 @@
     glRenderbufferStorageMultisampleANGLEContextANGLE =
         reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLECONTEXTANGLEPROC>(
             loadProc("glRenderbufferStorageMultisampleANGLEContextANGLE"));
+    glGetRenderbufferImageANGLEContextANGLE =
+        reinterpret_cast<PFNGLGETRENDERBUFFERIMAGEANGLECONTEXTANGLEPROC>(
+            loadProc("glGetRenderbufferImageANGLEContextANGLE"));
+    glGetTexImageANGLEContextANGLE = reinterpret_cast<PFNGLGETTEXIMAGEANGLECONTEXTANGLEPROC>(
+        loadProc("glGetTexImageANGLEContextANGLE"));
     glDrawArraysInstancedANGLEContextANGLE =
         reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDANGLECONTEXTANGLEPROC>(
             loadProc("glDrawArraysInstancedANGLEContextANGLE"));
@@ -3497,6 +3515,9 @@
     glProvokingVertexANGLEContextANGLE =
         reinterpret_cast<PFNGLPROVOKINGVERTEXANGLECONTEXTANGLEPROC>(
             loadProc("glProvokingVertexANGLEContextANGLE"));
+    glDisableExtensionANGLEContextANGLE =
+        reinterpret_cast<PFNGLDISABLEEXTENSIONANGLECONTEXTANGLEPROC>(
+            loadProc("glDisableExtensionANGLEContextANGLE"));
     glRequestExtensionANGLEContextANGLE =
         reinterpret_cast<PFNGLREQUESTEXTENSIONANGLECONTEXTANGLEPROC>(
             loadProc("glRequestExtensionANGLEContextANGLE"));
diff --git a/Source/ThirdParty/ANGLE/util/gles_loader_autogen.h b/Source/ThirdParty/ANGLE/util/gles_loader_autogen.h
index 2bcec27..68c69da 100644
--- a/Source/ThirdParty/ANGLE/util/gles_loader_autogen.h
+++ b/Source/ThirdParty/ANGLE/util/gles_loader_autogen.h
@@ -432,6 +432,8 @@
 ANGLE_UTIL_EXPORT extern PFNGLBLITFRAMEBUFFERANGLEPROC glBlitFramebufferANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC
     glRenderbufferStorageMultisampleANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLGETRENDERBUFFERIMAGEANGLEPROC glGetRenderbufferImageANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLGETTEXIMAGEANGLEPROC glGetTexImageANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLDRAWARRAYSINSTANCEDANGLEPROC glDrawArraysInstancedANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLDRAWELEMENTSINSTANCEDANGLEPROC glDrawElementsInstancedANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLVERTEXATTRIBDIVISORANGLEPROC glVertexAttribDivisorANGLE;
@@ -440,6 +442,7 @@
 ANGLE_UTIL_EXPORT extern PFNGLMULTIDRAWELEMENTSANGLEPROC glMultiDrawElementsANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLMULTIDRAWELEMENTSINSTANCEDANGLEPROC glMultiDrawElementsInstancedANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLPROVOKINGVERTEXANGLEPROC glProvokingVertexANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLDISABLEEXTENSIONANGLEPROC glDisableExtensionANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLREQUESTEXTENSIONANGLEPROC glRequestExtensionANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLEPROC glCompressedTexImage2DRobustANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLCOMPRESSEDTEXIMAGE3DROBUSTANGLEPROC glCompressedTexImage3DRobustANGLE;
@@ -1196,6 +1199,9 @@
     glBlitFramebufferANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLECONTEXTANGLEPROC
     glRenderbufferStorageMultisampleANGLEContextANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLGETRENDERBUFFERIMAGEANGLECONTEXTANGLEPROC
+    glGetRenderbufferImageANGLEContextANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLGETTEXIMAGEANGLECONTEXTANGLEPROC glGetTexImageANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLDRAWARRAYSINSTANCEDANGLECONTEXTANGLEPROC
     glDrawArraysInstancedANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC
@@ -1212,6 +1218,8 @@
     glMultiDrawElementsInstancedANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLPROVOKINGVERTEXANGLECONTEXTANGLEPROC
     glProvokingVertexANGLEContextANGLE;
+ANGLE_UTIL_EXPORT extern PFNGLDISABLEEXTENSIONANGLECONTEXTANGLEPROC
+    glDisableExtensionANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLREQUESTEXTENSIONANGLECONTEXTANGLEPROC
     glRequestExtensionANGLEContextANGLE;
 ANGLE_UTIL_EXPORT extern PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLECONTEXTANGLEPROC
diff --git a/Source/ThirdParty/ANGLE/util/osx/OSXWindow.h b/Source/ThirdParty/ANGLE/util/osx/OSXWindow.h
index 0b2b18a..3ae2fd9 100644
--- a/Source/ThirdParty/ANGLE/util/osx/OSXWindow.h
+++ b/Source/ThirdParty/ANGLE/util/osx/OSXWindow.h
@@ -33,7 +33,7 @@
 {
   public:
     OSXWindow();
-    ~OSXWindow();
+    ~OSXWindow() override;
 
     bool initialize(const std::string &name, int width, int height) override;
     void destroy() override;
diff --git a/Source/ThirdParty/ANGLE/util/osx/OSXWindow.mm b/Source/ThirdParty/ANGLE/util/osx/OSXWindow.mm
index f7019ff..222032e 100644
--- a/Source/ThirdParty/ANGLE/util/osx/OSXWindow.mm
+++ b/Source/ThirdParty/ANGLE/util/osx/OSXWindow.mm
@@ -655,6 +655,11 @@
     }
     [mView setWantsLayer:YES];
 
+    // Disable scaling for this view. If scaling is enabled, the metal backend's
+    // frame buffer's size will be this window's size multiplied by contentScale.
+    // It will cause inconsistent testing & example apps' results.
+    mView.layer.contentsScale = 1;
+
     [mWindow setContentView:mView];
     [mWindow setTitle:[NSString stringWithUTF8String:name.c_str()]];
     [mWindow setAcceptsMouseMovedEvents:YES];
diff --git a/Source/ThirdParty/ANGLE/util/ozone/OzoneWindow.h b/Source/ThirdParty/ANGLE/util/ozone/OzoneWindow.h
index 085e784..8af91b4 100644
--- a/Source/ThirdParty/ANGLE/util/ozone/OzoneWindow.h
+++ b/Source/ThirdParty/ANGLE/util/ozone/OzoneWindow.h
@@ -17,7 +17,7 @@
 {
   public:
     OzoneWindow();
-    ~OzoneWindow();
+    ~OzoneWindow() override;
 
     bool initialize(const std::string &name, int width, int height) override;
     void destroy() override;
diff --git a/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp b/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
index e40c4b5..64c31a7 100644
--- a/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
+++ b/Source/ThirdParty/ANGLE/util/posix/crash_handler_posix.cpp
@@ -43,7 +43,7 @@
     // No implementations yet.
 }
 
-void InitCrashHandler()
+void InitCrashHandler(CrashCallback *callback)
 {
     // No implementations yet.
 }
@@ -140,7 +140,7 @@
     SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP,
 };
 
-void InitCrashHandler()
+void InitCrashHandler(CrashCallback *callback)
 {
     for (int sig : kSignals)
     {
diff --git a/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp b/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
index 9d6c82f..b1ec61c 100644
--- a/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
+++ b/Source/ThirdParty/ANGLE/util/posix/test_utils_posix.cpp
@@ -8,24 +8,299 @@
 
 #include "util/test_utils.h"
 
+#include <dlfcn.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <sched.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
 #include <time.h>
 #include <unistd.h>
 #include <cstdarg>
+#include <cstring>
+#include <iostream>
 
+#include "common/debug.h"
 #include "common/platform.h"
 
 #if !defined(ANGLE_PLATFORM_FUCHSIA)
-#    include <dlfcn.h>
 #    include <sys/resource.h>
-#    include <sys/stat.h>
-#    include <sys/types.h>
-#    include <sys/wait.h>
 #endif
 
 namespace angle
 {
+namespace
+{
+struct ScopedPipe
+{
+    ~ScopedPipe()
+    {
+        closeEndPoint(0);
+        closeEndPoint(1);
+    }
+
+    void closeEndPoint(int index)
+    {
+        if (fds[index] >= 0)
+        {
+            close(fds[index]);
+            fds[index] = -1;
+        }
+    }
+
+    bool valid() const { return fds[0] != -1 || fds[1] != -1; }
+
+    int fds[2] = {
+        -1,
+        -1,
+    };
+};
+
+bool ReadFromFile(int fd, std::string *out)
+{
+    char buffer[256];
+    ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
+
+    // If interrupted, retry.
+    if (bytesRead < 0 && errno == EINTR)
+    {
+        return true;
+    }
+
+    // If failed, or nothing to read, we are done.
+    if (bytesRead <= 0)
+    {
+        return false;
+    }
+
+    out->append(buffer, bytesRead);
+    return true;
+}
+
+void ReadEntireFile(int fd, std::string *out)
+{
+    while (true)
+    {
+        if (!ReadFromFile(fd, out))
+            break;
+    }
+}
+
+class PosixProcess : public Process
+{
+  public:
+    PosixProcess(const std::vector<const char *> &commandLineArgs,
+                 bool captureStdOut,
+                 bool captureStdErr)
+    {
+        if (commandLineArgs.empty())
+        {
+            return;
+        }
+
+        // Create pipes for stdout and stderr.
+        if (captureStdOut)
+        {
+            if (pipe(mStdoutPipe.fds) != 0)
+            {
+                std::cerr << "Error calling pipe: " << errno << "\n";
+                return;
+            }
+            if (fcntl(mStdoutPipe.fds[0], F_SETFL, O_NONBLOCK) == -1)
+            {
+                std::cerr << "Error calling fcntl: " << errno << "\n";
+                return;
+            }
+        }
+        if (captureStdErr)
+        {
+            if (pipe(mStderrPipe.fds) != 0)
+            {
+                std::cerr << "Error calling pipe: " << errno << "\n";
+                return;
+            }
+            if (fcntl(mStderrPipe.fds[0], F_SETFL, O_NONBLOCK) == -1)
+            {
+                std::cerr << "Error calling fcntl: " << errno << "\n";
+                return;
+            }
+        }
+
+        mPID = fork();
+        if (mPID < 0)
+        {
+            return;
+        }
+
+        mStarted = true;
+        mTimer.start();
+
+        if (mPID == 0)
+        {
+            // Child.  Execute the application.
+
+            // Redirect stdout and stderr to the pipe fds.
+            if (captureStdOut)
+            {
+                if (dup2(mStdoutPipe.fds[1], STDOUT_FILENO) < 0)
+                {
+                    _exit(errno);
+                }
+                mStdoutPipe.closeEndPoint(1);
+            }
+            if (captureStdErr)
+            {
+                if (dup2(mStderrPipe.fds[1], STDERR_FILENO) < 0)
+                {
+                    _exit(errno);
+                }
+                mStderrPipe.closeEndPoint(1);
+            }
+
+            // Execute the application, which doesn't return unless failed.  Note: execv takes argv
+            // as `char * const *` for historical reasons.  It is safe to const_cast it:
+            //
+            // http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html
+            //
+            // > The statement about argv[] and envp[] being constants is included to make explicit
+            // to future writers of language bindings that these objects are completely constant.
+            // Due to a limitation of the ISO C standard, it is not possible to state that idea in
+            // standard C. Specifying two levels of const- qualification for the argv[] and envp[]
+            // parameters for the exec functions may seem to be the natural choice, given that these
+            // functions do not modify either the array of pointers or the characters to which the
+            // function points, but this would disallow existing correct code. Instead, only the
+            // array of pointers is noted as constant.
+            std::vector<char *> args;
+            for (const char *arg : commandLineArgs)
+            {
+                args.push_back(const_cast<char *>(arg));
+            }
+            args.push_back(nullptr);
+
+            execv(commandLineArgs[0], args.data());
+            std::cerr << "Error calling evecv: " << errno;
+            _exit(errno);
+        }
+        // Parent continues execution.
+        mStdoutPipe.closeEndPoint(1);
+        mStderrPipe.closeEndPoint(1);
+    }
+
+    ~PosixProcess() override {}
+
+    bool started() override { return mStarted; }
+
+    bool finish() override
+    {
+        if (!mStarted)
+        {
+            return false;
+        }
+
+        if (mFinished)
+        {
+            return true;
+        }
+
+        while (!finished())
+        {
+            angle::Sleep(1);
+        }
+
+        return true;
+    }
+
+    bool finished() override
+    {
+        if (!mStarted)
+        {
+            return false;
+        }
+
+        if (mFinished)
+        {
+            return true;
+        }
+
+        int status        = 0;
+        pid_t returnedPID = ::waitpid(mPID, &status, WNOHANG);
+
+        if (returnedPID == -1 && errno != ECHILD)
+        {
+            std::cerr << "Error calling waitpid: " << ::strerror(errno) << "\n";
+            return true;
+        }
+
+        if (returnedPID == mPID)
+        {
+            mFinished = true;
+            mTimer.stop();
+            readPipes();
+            mExitCode = WEXITSTATUS(status);
+            return true;
+        }
+
+        if (mStdoutPipe.valid())
+        {
+            ReadFromFile(mStdoutPipe.fds[0], &mStdout);
+        }
+
+        if (mStderrPipe.valid())
+        {
+            ReadFromFile(mStderrPipe.fds[0], &mStderr);
+        }
+
+        return false;
+    }
+
+    int getExitCode() override { return mExitCode; }
+
+    bool kill() override
+    {
+        if (!mStarted)
+        {
+            return false;
+        }
+
+        if (finished())
+        {
+            return true;
+        }
+
+        return (::kill(mPID, SIGTERM) == 0);
+    }
+
+  private:
+    void readPipes()
+    {
+        // Close the write end of the pipes, so EOF can be generated when child exits.
+        // Then read back the output of the child.
+        if (mStdoutPipe.valid())
+        {
+            ReadEntireFile(mStdoutPipe.fds[0], &mStdout);
+        }
+        if (mStderrPipe.valid())
+        {
+            ReadEntireFile(mStderrPipe.fds[0], &mStderr);
+        }
+    }
+
+    bool mStarted  = false;
+    bool mFinished = false;
+    ScopedPipe mStdoutPipe;
+    ScopedPipe mStderrPipe;
+    int mExitCode = 0;
+    pid_t mPID    = -1;
+};
+
+std::string TempFileName()
+{
+    return std::string(".angle.XXXXXX");
+}
+}  // anonymous namespace
+
 void Sleep(unsigned int milliseconds)
 {
     // On Windows Sleep(0) yields while it isn't guaranteed by Posix's sleep
@@ -94,4 +369,68 @@
     return false;
 #endif
 }
+
+bool GetTempDir(char *tempDirOut, uint32_t maxDirNameLen)
+{
+    const char *tmp = getenv("TMPDIR");
+    if (tmp)
+    {
+        strncpy(tempDirOut, tmp, maxDirNameLen);
+        return true;
+    }
+
+#if defined(ANGLE_PLATFORM_ANDROID)
+    // TODO(jmadill): Android support. http://anglebug.com/3162
+    // return PathService::Get(DIR_CACHE, path);
+    return false;
+#else
+    strncpy(tempDirOut, "/tmp", maxDirNameLen);
+    return true;
+#endif
+}
+
+bool CreateTemporaryFileInDir(const char *dir, char *tempFileNameOut, uint32_t maxFileNameLen)
+{
+    std::string tempFile = TempFileName();
+    sprintf(tempFileNameOut, "%s/%s", dir, tempFile.c_str());
+    int fd = mkstemp(tempFileNameOut);
+    close(fd);
+    return fd != -1;
+}
+
+bool DeleteFile(const char *path)
+{
+    return unlink(path) == 0;
+}
+
+Process *LaunchProcess(const std::vector<const char *> &args,
+                       bool captureStdout,
+                       bool captureStderr)
+{
+    return new PosixProcess(args, captureStdout, captureStderr);
+}
+
+int NumberOfProcessors()
+{
+    // sysconf returns the number of "logical" (not "physical") processors on both
+    // Mac and Linux.  So we get the number of max available "logical" processors.
+    //
+    // Note that the number of "currently online" processors may be fewer than the
+    // returned value of NumberOfProcessors(). On some platforms, the kernel may
+    // make some processors offline intermittently, to save power when system
+    // loading is low.
+    //
+    // One common use case that needs to know the processor count is to create
+    // optimal number of threads for optimization. It should make plan according
+    // to the number of "max available" processors instead of "currently online"
+    // ones. The kernel should be smart enough to make all processors online when
+    // it has sufficient number of threads waiting to run.
+    long res = sysconf(_SC_NPROCESSORS_CONF);
+    if (res == -1)
+    {
+        return 1;
+    }
+
+    return static_cast<int>(res);
+}
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/util/shader_utils.cpp b/Source/ThirdParty/ANGLE/util/shader_utils.cpp
index 518608e..50afabf 100644
--- a/Source/ThirdParty/ANGLE/util/shader_utils.cpp
+++ b/Source/ThirdParty/ANGLE/util/shader_utils.cpp
@@ -4,33 +4,26 @@
 // found in the LICENSE file.
 //
 
-#include "shader_utils.h"
+#include "util/shader_utils.h"
 
 #include <cstring>
 #include <fstream>
 #include <iostream>
 #include <vector>
 
+#include "util/test_utils.h"
+
 namespace
 {
-std::string ReadFileToString(const std::string &source)
+bool ReadEntireFile(const std::string &filePath, std::string *contentsOut)
 {
-    std::ifstream stream(source.c_str());
-    if (!stream)
-    {
-        std::cerr << "Failed to load shader file: " << source;
-        return "";
-    }
-
-    std::string result;
-
-    stream.seekg(0, std::ios::end);
-    result.reserve(static_cast<unsigned int>(stream.tellg()));
-    stream.seekg(0, std::ios::beg);
-
-    result.assign((std::istreambuf_iterator<char>(stream)), std::istreambuf_iterator<char>());
-
-    return result;
+    constexpr uint32_t kMaxBufferSize = 2000;
+    char buffer[kMaxBufferSize]       = {};
+    if (!angle::ReadEntireFileToString(filePath.c_str(), buffer, kMaxBufferSize) ||
+        strlen(buffer) == 0)
+        return false;
+    *contentsOut = buffer;
+    return true;
 }
 
 GLuint CompileProgramInternal(const char *vsSource,
@@ -124,9 +117,10 @@
 
 GLuint CompileShaderFromFile(GLenum type, const std::string &sourcePath)
 {
-    std::string source = ReadFileToString(sourcePath);
-    if (source.empty())
+    std::string source;
+    if (!ReadEntireFile(sourcePath, &source))
     {
+        std::cerr << "Error reading shader file: " << sourcePath << "\n";
         return 0;
     }
 
@@ -214,10 +208,17 @@
 
 GLuint CompileProgramFromFiles(const std::string &vsPath, const std::string &fsPath)
 {
-    std::string vsSource = ReadFileToString(vsPath);
-    std::string fsSource = ReadFileToString(fsPath);
-    if (vsSource.empty() || fsSource.empty())
+    std::string vsSource;
+    if (!ReadEntireFile(vsPath, &vsSource))
     {
+        std::cerr << "Error reading shader: " << vsPath << "\n";
+        return 0;
+    }
+
+    std::string fsSource;
+    if (!ReadEntireFile(fsPath, &fsSource))
+    {
+        std::cerr << "Error reading shader: " << fsPath << "\n";
         return 0;
     }
 
@@ -408,12 +409,12 @@
 const char *Texture2D()
 {
     return R"(precision mediump float;
-uniform sampler2D u_tex;
+uniform sampler2D u_tex2D;
 varying vec2 v_texCoord;
 
 void main()
 {
-    gl_FragColor = texture2D(u_tex, v_texCoord);
+    gl_FragColor = texture2D(u_tex2D, v_texCoord);
 })";
 }
 
diff --git a/Source/ThirdParty/ANGLE/util/test_utils.cpp b/Source/ThirdParty/ANGLE/util/test_utils.cpp
new file mode 100644
index 0000000..ac4dc8f
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/util/test_utils.cpp
@@ -0,0 +1,97 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// system_utils: Defines common utility functions
+
+#include "util/test_utils.h"
+
+#include <cstring>
+#include <fstream>
+
+namespace angle
+{
+bool CreateTemporaryFile(char *tempFileNameOut, uint32_t maxFileNameLen)
+{
+    constexpr uint32_t kMaxPath = 1000u;
+    char tempPath[kMaxPath];
+
+    if (!GetTempDir(tempPath, kMaxPath))
+        return false;
+
+    return CreateTemporaryFileInDir(tempPath, tempFileNameOut, maxFileNameLen);
+}
+
+bool GetFileSize(const char *filePath, uint32_t *sizeOut)
+{
+    std::ifstream stream(filePath);
+    if (!stream)
+    {
+        return false;
+    }
+
+    stream.seekg(0, std::ios::end);
+    *sizeOut = static_cast<uint32_t>(stream.tellg());
+    return true;
+}
+
+bool ReadEntireFileToString(const char *filePath, char *contentsOut, uint32_t maxLen)
+{
+    std::ifstream stream(filePath);
+    if (!stream)
+    {
+        return false;
+    }
+
+    std::string contents;
+
+    stream.seekg(0, std::ios::end);
+    contents.reserve(static_cast<unsigned int>(stream.tellg()));
+    stream.seekg(0, std::ios::beg);
+
+    contents.assign((std::istreambuf_iterator<char>(stream)), std::istreambuf_iterator<char>());
+
+    strncpy(contentsOut, contents.c_str(), maxLen);
+    return true;
+}
+
+// static
+Process::~Process() = default;
+
+ProcessHandle::ProcessHandle() : mProcess(nullptr) {}
+
+ProcessHandle::ProcessHandle(Process *process) : mProcess(process) {}
+
+ProcessHandle::ProcessHandle(const std::vector<const char *> &args,
+                             bool captureStdout,
+                             bool captureStderr)
+    : mProcess(LaunchProcess(args, captureStdout, captureStderr))
+{}
+
+ProcessHandle::~ProcessHandle()
+{
+    reset();
+}
+
+ProcessHandle::ProcessHandle(ProcessHandle &&other) : mProcess(other.mProcess)
+{
+    other.mProcess = nullptr;
+}
+
+ProcessHandle &ProcessHandle::operator=(ProcessHandle &&rhs)
+{
+    std::swap(mProcess, rhs.mProcess);
+    return *this;
+}
+
+void ProcessHandle::reset()
+{
+    if (mProcess)
+    {
+        delete mProcess;
+        mProcess = nullptr;
+    }
+}
+}  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/util/test_utils.h b/Source/ThirdParty/ANGLE/util/test_utils.h
index 6a4951d..7a3b217 100644
--- a/Source/ThirdParty/ANGLE/util/test_utils.h
+++ b/Source/ThirdParty/ANGLE/util/test_utils.h
@@ -9,9 +9,12 @@
 #ifndef UTIL_TEST_UTILS_H_
 #define UTIL_TEST_UTILS_H_
 
+#include <functional>
 #include <string>
 #include <vector>
 
+#include "common/angleutils.h"
+#include "util/Timer.h"
 #include "util/util_export.h"
 
 namespace angle
@@ -28,12 +31,96 @@
 ANGLE_UTIL_EXPORT bool StabilizeCPUForBenchmarking();
 
 // Set a crash handler to print stack traces.
-ANGLE_UTIL_EXPORT void InitCrashHandler();
+using CrashCallback = std::function<void()>;
+ANGLE_UTIL_EXPORT void InitCrashHandler(CrashCallback *callback);
 ANGLE_UTIL_EXPORT void TerminateCrashHandler();
 
 // Print a stack back trace.
 ANGLE_UTIL_EXPORT void PrintStackBacktrace();
 
+// Get temporary directory.
+ANGLE_UTIL_EXPORT bool GetTempDir(char *tempDirOut, uint32_t maxDirNameLen);
+
+// Creates a temporary file. The full path is placed in |path|, and the
+// function returns true if was successful in creating the file. The file will
+// be empty and all handles closed after this function returns.
+ANGLE_UTIL_EXPORT bool CreateTemporaryFile(char *tempFileNameOut, uint32_t maxFileNameLen);
+
+// Same as CreateTemporaryFile but the file is created in |dir|.
+ANGLE_UTIL_EXPORT bool CreateTemporaryFileInDir(const char *dir,
+                                                char *tempFileNameOut,
+                                                uint32_t maxFileNameLen);
+
+// Deletes a file or directory.
+ANGLE_UTIL_EXPORT bool DeleteFile(const char *path);
+
+// Reads a file contents into a string.
+ANGLE_UTIL_EXPORT bool ReadEntireFileToString(const char *filePath,
+                                              char *contentsOut,
+                                              uint32_t maxLen);
+
+// Compute a file's size.
+ANGLE_UTIL_EXPORT bool GetFileSize(const char *filePath, uint32_t *sizeOut);
+
+class ANGLE_UTIL_EXPORT ProcessHandle;
+
+class ANGLE_UTIL_EXPORT Process : angle::NonCopyable
+{
+  public:
+    virtual bool started()    = 0;
+    virtual bool finished()   = 0;
+    virtual bool finish()     = 0;
+    virtual bool kill()       = 0;
+    virtual int getExitCode() = 0;
+
+    double getElapsedTimeSeconds() const { return mTimer.getElapsedTime(); }
+    const std::string &getStdout() const { return mStdout; }
+    const std::string &getStderr() const { return mStderr; }
+
+  protected:
+    friend class ANGLE_UTIL_EXPORT ProcessHandle;
+    virtual ~Process();
+
+    Timer mTimer;
+    std::string mStdout;
+    std::string mStderr;
+};
+
+class ANGLE_UTIL_EXPORT ProcessHandle final : angle::NonCopyable
+{
+  public:
+    ProcessHandle();
+    ProcessHandle(Process *process);
+    ProcessHandle(const std::vector<const char *> &args, bool captureStdout, bool captureStderr);
+    ~ProcessHandle();
+    ProcessHandle(ProcessHandle &&other);
+    ProcessHandle &operator=(ProcessHandle &&rhs);
+
+    Process *operator->() { return mProcess; }
+    const Process *operator->() const { return mProcess; }
+
+    operator bool() const { return mProcess != nullptr; }
+
+    void reset();
+
+  private:
+    Process *mProcess;
+};
+
+// Launch a process and optionally get the output. Uses a vector of c strings as command line
+// arguments to the child process. Returns a Process handle which can be used to retrieve
+// the stdout and stderr outputs as well as the exit code.
+//
+// Pass false for stdoutOut/stderrOut if you don't need to capture them.
+//
+// On success, returns a Process pointer with started() == true.
+// On failure, returns a Process pointer with started() == false.
+ANGLE_UTIL_EXPORT Process *LaunchProcess(const std::vector<const char *> &args,
+                                         bool captureStdout,
+                                         bool captureStderr);
+
+ANGLE_UTIL_EXPORT int NumberOfProcessors();
+
 }  // namespace angle
 
 #endif  // UTIL_TEST_UTILS_H_
diff --git a/Source/ThirdParty/ANGLE/util/test_utils_unittest.cpp b/Source/ThirdParty/ANGLE/util/test_utils_unittest.cpp
new file mode 100644
index 0000000..9b02a5a
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/util/test_utils_unittest.cpp
@@ -0,0 +1,223 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// test_utils_unittest.cpp: Unit tests for ANGLE's test utility functions
+
+#include "gtest/gtest.h"
+
+#include "common/system_utils.h"
+#include "util/Timer.h"
+#include "util/test_utils.h"
+#include "util/test_utils_unittest_helper.h"
+
+using namespace angle;
+
+namespace
+{
+#if defined(ANGLE_PLATFORM_WINDOWS)
+constexpr char kRunAppHelperExecutable[] = "test_utils_unittest_helper.exe";
+#else
+constexpr char kRunAppHelperExecutable[] = "test_utils_unittest_helper";
+#endif
+
+// Transforms various line endings into C/Unix line endings:
+//
+// - A\nB -> A\nB
+// - A\rB -> A\nB
+// - A\r\nB -> A\nB
+std::string NormalizeNewLines(const std::string &str)
+{
+    std::string result;
+
+    for (size_t i = 0; i < str.size(); ++i)
+    {
+        if (str[i] == '\r')
+        {
+            if (i + 1 < str.size() && str[i + 1] == '\n')
+            {
+                ++i;
+            }
+            result += '\n';
+        }
+        else
+        {
+            result += str[i];
+        }
+    }
+
+    return result;
+}
+
+// Tests that Sleep() actually waits some time.
+TEST(TestUtils, Sleep)
+{
+    Timer timer;
+    timer.start();
+    angle::Sleep(500);
+    timer.stop();
+
+    // Use a slightly fuzzy range
+    EXPECT_GT(timer.getElapsedTime(), 0.48);
+}
+
+constexpr uint32_t kMaxPath = 1000;
+
+// Temporary file creation is not supported on Android right now.
+#if defined(ANGLE_PLATFORM_ANDROID)
+#    define MAYBE_CreateAndDeleteTemporaryFile DISABLED_CreateAndDeleteTemporaryFile
+#    define MAYBE_CreateAndDeleteFileInTempDir DISABLED_CreateAndDeleteFileInTempDir
+#else
+#    define MAYBE_CreateAndDeleteTemporaryFile CreateAndDeleteTemporaryFile
+#    define MAYBE_CreateAndDeleteFileInTempDir CreateAndDeleteFileInTempDir
+#endif  // defined(ANGLE_PLATFORM_ANDROID)
+
+// Test creating and deleting temporary file.
+TEST(TestUtils, MAYBE_CreateAndDeleteTemporaryFile)
+{
+    char path[kMaxPath] = {};
+    ASSERT_TRUE(CreateTemporaryFile(path, kMaxPath));
+    ASSERT_TRUE(strlen(path) > 0);
+
+    const char kOutputString[] = "test output";
+
+    FILE *fp = fopen(path, "wt");
+    ASSERT_NE(fp, nullptr);
+    int retval = fputs(kOutputString, fp);
+    fclose(fp);
+
+    EXPECT_GE(retval, 0);
+
+    // Test ReadEntireFileToString
+    char actualString[kMaxPath];
+    EXPECT_TRUE(ReadEntireFileToString(path, actualString, kMaxPath));
+    EXPECT_EQ(strcmp(actualString, kOutputString), 0);
+
+    // Delete the temporary file.
+    EXPECT_TRUE(angle::DeleteFile(path));
+}
+
+// Tests creating and deleting a file in the system temp dir.
+TEST(TestUtils, MAYBE_CreateAndDeleteFileInTempDir)
+{
+    char tempDir[kMaxPath];
+    ASSERT_TRUE(GetTempDir(tempDir, kMaxPath));
+
+    char path[kMaxPath] = {};
+    ASSERT_TRUE(CreateTemporaryFileInDir(tempDir, path, kMaxPath));
+    ASSERT_TRUE(strlen(path) > 0);
+
+    const char kOutputString[] = "test output";
+
+    FILE *fp = fopen(path, "wt");
+    ASSERT_NE(fp, nullptr);
+    int retval = fputs(kOutputString, fp);
+    fclose(fp);
+
+    EXPECT_GE(retval, 0);
+
+    // Test ReadEntireFileToString
+    char actualString[kMaxPath];
+    EXPECT_TRUE(ReadEntireFileToString(path, actualString, kMaxPath));
+    EXPECT_EQ(strcmp(actualString, kOutputString), 0);
+
+    // Delete the temporary file.
+    EXPECT_TRUE(angle::DeleteFile(path));
+}
+
+// TODO: android support. http://anglebug.com/3125
+#if defined(ANGLE_PLATFORM_ANDROID)
+#    define MAYBE_RunApp DISABLED_RunApp
+#    define MAYBE_RunAppAsync DISABLED_RunAppAsync
+// TODO: fuchsia support. http://anglebug.com/3161
+#elif defined(ANGLE_PLATFORM_FUCHSIA)
+#    define MAYBE_RunApp DISABLED_RunApp
+#    define MAYBE_RunAppAsync DISABLED_RunAppAsync
+#else
+#    define MAYBE_RunApp RunApp
+#    define MAYBE_RunAppAsync RunAppAsync
+#endif  // defined(ANGLE_PLATFORM_ANDROID)
+
+// Test running an external application and receiving its output
+TEST(TestUtils, MAYBE_RunApp)
+{
+    std::string executablePath = GetExecutableDirectory();
+    EXPECT_NE(executablePath, "");
+    executablePath += "/";
+    executablePath += kRunAppHelperExecutable;
+
+    std::vector<const char *> args = {executablePath.c_str(), kRunAppTestArg1, kRunAppTestArg2};
+
+    // Test that the application can be executed.
+    {
+        ProcessHandle process(args, true, true);
+        EXPECT_TRUE(process->started());
+        EXPECT_TRUE(process->finish());
+        EXPECT_TRUE(process->finished());
+
+        EXPECT_GT(process->getElapsedTimeSeconds(), 0.0);
+        EXPECT_EQ(kRunAppTestStdout, NormalizeNewLines(process->getStdout()));
+        EXPECT_EQ(kRunAppTestStderr, NormalizeNewLines(process->getStderr()));
+        EXPECT_EQ(EXIT_SUCCESS, process->getExitCode());
+    }
+
+    // Test that environment variables reach the child.
+    {
+        bool setEnvDone = SetEnvironmentVar(kRunAppTestEnvVarName, kRunAppTestEnvVarValue);
+        EXPECT_TRUE(setEnvDone);
+
+        ProcessHandle process(LaunchProcess(args, true, true));
+        EXPECT_TRUE(process->started());
+        EXPECT_TRUE(process->finish());
+
+        EXPECT_GT(process->getElapsedTimeSeconds(), 0.0);
+        EXPECT_EQ("", process->getStdout());
+        EXPECT_EQ(kRunAppTestEnvVarValue, NormalizeNewLines(process->getStderr()));
+        EXPECT_EQ(EXIT_SUCCESS, process->getExitCode());
+
+        // Unset environment var.
+        SetEnvironmentVar(kRunAppTestEnvVarName, "");
+    }
+}
+
+// Test running an external application and receiving its output asynchronously.
+TEST(TestUtils, MAYBE_RunAppAsync)
+{
+    std::string executablePath = GetExecutableDirectory();
+    EXPECT_NE(executablePath, "");
+    executablePath += "/";
+    executablePath += kRunAppHelperExecutable;
+
+    std::vector<const char *> args = {executablePath.c_str(), kRunAppTestArg1, kRunAppTestArg2};
+
+    // Test that the application can be executed.
+    {
+        ProcessHandle process(args, true, true);
+        EXPECT_TRUE(process->started());
+
+        constexpr double kTimeout = 3.0;
+
+        Timer timer;
+        timer.start();
+        while (!process->finished() && timer.getElapsedTime() < kTimeout)
+        {
+            angle::Sleep(1);
+        }
+
+        EXPECT_TRUE(process->finished());
+        EXPECT_GT(process->getElapsedTimeSeconds(), 0.0);
+        EXPECT_EQ(kRunAppTestStdout, NormalizeNewLines(process->getStdout()));
+        EXPECT_EQ(kRunAppTestStderr, NormalizeNewLines(process->getStderr()));
+        EXPECT_EQ(EXIT_SUCCESS, process->getExitCode());
+    }
+}
+
+// Verify that NumberOfProcessors returns something sane.
+TEST(TestUtils, NumberOfProcessors)
+{
+    int numProcs = angle::NumberOfProcessors();
+    EXPECT_GT(numProcs, 0);
+    EXPECT_LT(numProcs, 1000);
+}
+}  // namespace
diff --git a/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.cpp b/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.cpp
new file mode 100644
index 0000000..2604f11
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.cpp
@@ -0,0 +1,35 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// system_utils_unittest_helper.cpp: Helper to the SystemUtils.RunApp unittest
+
+#include "test_utils_unittest_helper.h"
+
+#include "common/system_utils.h"
+
+#include <string.h>
+
+int main(int argc, char **argv)
+{
+    if (argc != 3 || strcmp(argv[1], kRunAppTestArg1) != 0 || strcmp(argv[2], kRunAppTestArg2) != 0)
+    {
+        fprintf(stderr, "Expected command line:\n%s %s %s\n", argv[0], kRunAppTestArg1,
+                kRunAppTestArg2);
+        return EXIT_FAILURE;
+    }
+
+    std::string env = angle::GetEnvironmentVar(kRunAppTestEnvVarName);
+    if (env == "")
+    {
+        printf("%s", kRunAppTestStdout);
+        fprintf(stderr, "%s", kRunAppTestStderr);
+    }
+    else
+    {
+        fprintf(stderr, "%s", env.c_str());
+    }
+
+    return EXIT_SUCCESS;
+}
diff --git a/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.h b/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.h
new file mode 100644
index 0000000..660bde1
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/util/test_utils_unittest_helper.h
@@ -0,0 +1,21 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// system_utils_unittest_helper.h: Constants used by the SystemUtils.RunApp unittest
+
+#ifndef COMMON_SYSTEM_UTILS_UNITTEST_HELPER_H_
+#define COMMON_SYSTEM_UTILS_UNITTEST_HELPER_H_
+
+namespace
+{
+constexpr char kRunAppTestEnvVarName[]  = "RUN_APP_TEST_ENV";
+constexpr char kRunAppTestEnvVarValue[] = "RunAppTest environment variable value\n";
+constexpr char kRunAppTestStdout[]      = "RunAppTest stdout test\n";
+constexpr char kRunAppTestStderr[] = "RunAppTest stderr test\n  .. that expands multiple lines\n";
+constexpr char kRunAppTestArg1[]   = "--expected-arg1";
+constexpr char kRunAppTestArg2[]   = "expected_arg2";
+}  // anonymous namespace
+
+#endif  // COMMON_SYSTEM_UTILS_UNITTEST_HELPER_H_
diff --git a/Source/ThirdParty/ANGLE/util/util.gni b/Source/ThirdParty/ANGLE/util/util.gni
index 4304cae..fa1b3361 100644
--- a/Source/ThirdParty/ANGLE/util/util.gni
+++ b/Source/ThirdParty/ANGLE/util/util.gni
@@ -12,6 +12,7 @@
   "util/random_utils.h",
   "util/shader_utils.cpp",
   "util/shader_utils.h",
+  "util/test_utils.cpp",
   "util/test_utils.h",
   "util/util_export.h",
   "util/util_gl.h",
diff --git a/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp b/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
index 96c4d42..a9e82e1 100644
--- a/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/WGLWindow.cpp
@@ -19,7 +19,7 @@
 {
 PIXELFORMATDESCRIPTOR GetDefaultPixelFormatDescriptor()
 {
-    PIXELFORMATDESCRIPTOR pixelFormatDescriptor = {0};
+    PIXELFORMATDESCRIPTOR pixelFormatDescriptor = {};
     pixelFormatDescriptor.nSize                 = sizeof(pixelFormatDescriptor);
     pixelFormatDescriptor.nVersion              = 1;
     pixelFormatDescriptor.dwFlags =
diff --git a/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp b/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
index 05a44c8..2a303a7 100644
--- a/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/test_utils_win.cpp
@@ -8,10 +8,15 @@
 
 #include "util/test_utils.h"
 
+#include <aclapi.h>
 #include <stdarg.h>
+#include <versionhelpers.h>
 #include <windows.h>
 #include <array>
+#include <iostream>
+#include <vector>
 
+#include "anglebase/no_destructor.h"
 #include "common/angleutils.h"
 #include "util/windows/third_party/StackWalker/src/StackWalker.h"
 
@@ -39,7 +44,7 @@
 {
   public:
     CustomStackWalker() {}
-    ~CustomStackWalker() {}
+    ~CustomStackWalker() override {}
 
     void OnCallstackEntry(CallstackEntryType eType, CallstackEntry &entry) override
     {
@@ -105,6 +110,354 @@
     // The compiler wants us to return something.  This is what we'd do if we didn't _exit().
     return EXCEPTION_EXECUTE_HANDLER;
 }
+
+CrashCallback *gCrashHandlerCallback;
+
+LONG WINAPI CrashHandler(EXCEPTION_POINTERS *e)
+{
+    if (gCrashHandlerCallback)
+    {
+        (*gCrashHandlerCallback)();
+    }
+    return StackTraceCrashHandler(e);
+}
+
+struct ScopedPipe
+{
+    ~ScopedPipe()
+    {
+        closeReadHandle();
+        closeWriteHandle();
+    }
+    bool closeReadHandle()
+    {
+        if (readHandle)
+        {
+            if (::CloseHandle(readHandle) == FALSE)
+            {
+                std::cerr << "Error closing write handle: " << GetLastError();
+                return false;
+            }
+            readHandle = nullptr;
+        }
+
+        return true;
+    }
+    bool closeWriteHandle()
+    {
+        if (writeHandle)
+        {
+            if (::CloseHandle(writeHandle) == FALSE)
+            {
+                std::cerr << "Error closing write handle: " << GetLastError();
+                return false;
+            }
+            writeHandle = nullptr;
+        }
+
+        return true;
+    }
+
+    bool valid() const { return readHandle != nullptr || writeHandle != nullptr; }
+
+    bool initPipe(SECURITY_ATTRIBUTES *securityAttribs)
+    {
+        if (::CreatePipe(&readHandle, &writeHandle, securityAttribs, 0) == FALSE)
+        {
+            std::cerr << "Error creating pipe: " << GetLastError() << "\n";
+            return false;
+        }
+
+        // Ensure the read handles to the pipes are not inherited.
+        if (::SetHandleInformation(readHandle, HANDLE_FLAG_INHERIT, 0) == FALSE)
+        {
+            std::cerr << "Error setting handle info on pipe: " << GetLastError() << "\n";
+            return false;
+        }
+
+        return true;
+    }
+
+    HANDLE readHandle  = nullptr;
+    HANDLE writeHandle = nullptr;
+};
+
+// Returns false on EOF or error.
+void ReadFromFile(bool blocking, HANDLE handle, std::string *out)
+{
+    char buffer[8192];
+    DWORD bytesRead = 0;
+
+    while (true)
+    {
+        if (!blocking)
+        {
+            BOOL success = ::PeekNamedPipe(handle, nullptr, 0, nullptr, &bytesRead, nullptr);
+            if (success == FALSE || bytesRead == 0)
+                return;
+        }
+
+        BOOL success = ::ReadFile(handle, buffer, sizeof(buffer), &bytesRead, nullptr);
+        if (success == FALSE || bytesRead == 0)
+            return;
+
+        out->append(buffer, bytesRead);
+    }
+
+    // unreachable.
+}
+
+// Returns the Win32 last error code or ERROR_SUCCESS if the last error code is
+// ERROR_FILE_NOT_FOUND or ERROR_PATH_NOT_FOUND. This is useful in cases where
+// the absence of a file or path is a success condition (e.g., when attempting
+// to delete an item in the filesystem).
+bool ReturnSuccessOnNotFound()
+{
+    const DWORD error_code = ::GetLastError();
+    return (error_code == ERROR_FILE_NOT_FOUND || error_code == ERROR_PATH_NOT_FOUND);
+}
+
+// Job objects seems to have problems on the Chromium CI and Windows 7.
+bool ShouldUseJobObjects()
+{
+    return (::IsWindows10OrGreater());
+}
+
+class WindowsProcess : public Process
+{
+  public:
+    WindowsProcess(const std::vector<const char *> &commandLineArgs,
+                   bool captureStdOut,
+                   bool captureStdErr)
+    {
+        mProcessInfo.hProcess = INVALID_HANDLE_VALUE;
+        mProcessInfo.hThread  = INVALID_HANDLE_VALUE;
+
+        std::vector<char> commandLineString;
+        for (const char *arg : commandLineArgs)
+        {
+            if (arg)
+            {
+                if (!commandLineString.empty())
+                {
+                    commandLineString.push_back(' ');
+                }
+                commandLineString.insert(commandLineString.end(), arg, arg + strlen(arg));
+            }
+        }
+        commandLineString.push_back('\0');
+
+        // Set the bInheritHandle flag so pipe handles are inherited.
+        SECURITY_ATTRIBUTES securityAttribs;
+        securityAttribs.nLength              = sizeof(SECURITY_ATTRIBUTES);
+        securityAttribs.bInheritHandle       = TRUE;
+        securityAttribs.lpSecurityDescriptor = nullptr;
+
+        STARTUPINFOA startInfo = {};
+
+        // Create pipes for stdout and stderr.
+        startInfo.cb        = sizeof(STARTUPINFOA);
+        startInfo.hStdInput = ::GetStdHandle(STD_INPUT_HANDLE);
+        if (captureStdOut)
+        {
+            if (!mStdoutPipe.initPipe(&securityAttribs))
+            {
+                return;
+            }
+            startInfo.hStdOutput = mStdoutPipe.writeHandle;
+        }
+        else
+        {
+            startInfo.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE);
+        }
+
+        if (captureStdErr)
+        {
+            if (!mStderrPipe.initPipe(&securityAttribs))
+            {
+                return;
+            }
+            startInfo.hStdError = mStderrPipe.writeHandle;
+        }
+        else
+        {
+            startInfo.hStdError = ::GetStdHandle(STD_ERROR_HANDLE);
+        }
+
+        if (captureStdOut || captureStdErr)
+        {
+            startInfo.dwFlags |= STARTF_USESTDHANDLES;
+        }
+
+        if (ShouldUseJobObjects())
+        {
+            // Create job object. Job objects allow us to automatically force child processes to
+            // exit if the parent process is unexpectedly killed. This should prevent ghost
+            // processes from hanging around.
+            mJobHandle = ::CreateJobObjectA(nullptr, nullptr);
+            if (mJobHandle == NULL)
+            {
+                std::cerr << "Error creating job object: " << GetLastError() << "\n";
+                return;
+            }
+
+            JOBOBJECT_EXTENDED_LIMIT_INFORMATION limitInfo = {};
+            limitInfo.BasicLimitInformation.LimitFlags     = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
+            if (::SetInformationJobObject(mJobHandle, JobObjectExtendedLimitInformation, &limitInfo,
+                                          sizeof(limitInfo)) == FALSE)
+            {
+                std::cerr << "Error setting job information: " << GetLastError() << "\n";
+                return;
+            }
+        }
+
+        // Create the child process.
+        if (::CreateProcessA(nullptr, commandLineString.data(), nullptr, nullptr,
+                             TRUE,  // Handles are inherited.
+                             0, nullptr, nullptr, &startInfo, &mProcessInfo) == FALSE)
+        {
+            std::cerr << "CreateProcessA Error code: " << GetLastError() << "\n";
+            return;
+        }
+
+        if (mJobHandle != nullptr)
+        {
+            if (::AssignProcessToJobObject(mJobHandle, mProcessInfo.hProcess) == FALSE)
+            {
+                std::cerr << "AssignProcessToJobObject failed: " << GetLastError() << "\n";
+                return;
+            }
+        }
+
+        // Close the write end of the pipes, so EOF can be generated when child exits.
+        if (!mStdoutPipe.closeWriteHandle() || !mStderrPipe.closeWriteHandle())
+            return;
+
+        mStarted = true;
+        mTimer.start();
+    }
+
+    ~WindowsProcess() override
+    {
+        if (mProcessInfo.hProcess != INVALID_HANDLE_VALUE)
+        {
+            ::CloseHandle(mProcessInfo.hProcess);
+        }
+        if (mProcessInfo.hThread != INVALID_HANDLE_VALUE)
+        {
+            ::CloseHandle(mProcessInfo.hThread);
+        }
+        if (mJobHandle != nullptr)
+        {
+            ::CloseHandle(mJobHandle);
+        }
+    }
+
+    bool started() override { return mStarted; }
+
+    bool finish() override
+    {
+        if (mStdoutPipe.valid())
+        {
+            ReadFromFile(true, mStdoutPipe.readHandle, &mStdout);
+        }
+
+        if (mStderrPipe.valid())
+        {
+            ReadFromFile(true, mStderrPipe.readHandle, &mStderr);
+        }
+
+        DWORD result = ::WaitForSingleObject(mProcessInfo.hProcess, INFINITE);
+        mTimer.stop();
+        return result == WAIT_OBJECT_0;
+    }
+
+    bool finished() override
+    {
+        if (!mStarted)
+            return false;
+
+        // Pipe stdin and stdout.
+        if (mStdoutPipe.valid())
+        {
+            ReadFromFile(false, mStdoutPipe.readHandle, &mStdout);
+        }
+
+        if (mStderrPipe.valid())
+        {
+            ReadFromFile(false, mStderrPipe.readHandle, &mStderr);
+        }
+
+        DWORD result = ::WaitForSingleObject(mProcessInfo.hProcess, 0);
+        if (result == WAIT_OBJECT_0)
+        {
+            mTimer.stop();
+            return true;
+        }
+        if (result == WAIT_TIMEOUT)
+            return false;
+
+        mTimer.stop();
+        std::cerr << "Unexpected result from WaitForSingleObject: " << result
+                  << ". Last error: " << ::GetLastError() << "\n";
+        return false;
+    }
+
+    int getExitCode() override
+    {
+        if (!mStarted)
+            return -1;
+
+        if (mProcessInfo.hProcess == INVALID_HANDLE_VALUE)
+            return -1;
+
+        DWORD exitCode = 0;
+        if (::GetExitCodeProcess(mProcessInfo.hProcess, &exitCode) == FALSE)
+            return -1;
+
+        return static_cast<int>(exitCode);
+    }
+
+    bool kill() override
+    {
+        if (!mStarted)
+            return true;
+
+        HANDLE newHandle;
+        if (::DuplicateHandle(::GetCurrentProcess(), mProcessInfo.hProcess, ::GetCurrentProcess(),
+                              &newHandle, PROCESS_ALL_ACCESS, false,
+                              DUPLICATE_CLOSE_SOURCE) == FALSE)
+        {
+            std::cerr << "Error getting permission to terminate process: " << ::GetLastError()
+                      << "\n";
+            return false;
+        }
+        mProcessInfo.hProcess = newHandle;
+
+        if (::TerminateThread(mProcessInfo.hThread, 1) == FALSE)
+        {
+            std::cerr << "TerminateThread failed: " << GetLastError() << "\n";
+            return false;
+        }
+
+        if (::TerminateProcess(mProcessInfo.hProcess, 1) == FALSE)
+        {
+            std::cerr << "TerminateProcess failed: " << GetLastError() << "\n";
+            return false;
+        }
+
+        mStarted = false;
+        mTimer.stop();
+        return true;
+    }
+
+  private:
+    bool mStarted = false;
+    ScopedPipe mStdoutPipe;
+    ScopedPipe mStderrPipe;
+    PROCESS_INFORMATION mProcessInfo = {};
+    HANDLE mJobHandle                = nullptr;
+};
 }  // anonymous namespace
 
 void Sleep(unsigned int milliseconds)
@@ -127,13 +480,18 @@
     OutputDebugStringA(buffer.data());
 }
 
-void InitCrashHandler()
+void InitCrashHandler(CrashCallback *callback)
 {
-    SetUnhandledExceptionFilter(StackTraceCrashHandler);
+    if (callback)
+    {
+        gCrashHandlerCallback = callback;
+    }
+    SetUnhandledExceptionFilter(CrashHandler);
 }
 
 void TerminateCrashHandler()
 {
+    gCrashHandlerCallback = nullptr;
     SetUnhandledExceptionFilter(nullptr);
 }
 
@@ -144,4 +502,61 @@
     RtlCaptureContext(&context);
     PrintBacktrace(&context);
 }
+
+Process *LaunchProcess(const std::vector<const char *> &args,
+                       bool captureStdout,
+                       bool captureStderr)
+{
+    return new WindowsProcess(args, captureStdout, captureStderr);
+}
+
+bool GetTempDir(char *tempDirOut, uint32_t maxDirNameLen)
+{
+    DWORD pathLen = ::GetTempPathA(maxDirNameLen, tempDirOut);
+    return (pathLen < MAX_PATH && pathLen > 0);
+}
+
+bool CreateTemporaryFileInDir(const char *dir, char *tempFileNameOut, uint32_t maxFileNameLen)
+{
+    char fileName[MAX_PATH + 1];
+    if (::GetTempFileNameA(dir, "ANGLE", 0, fileName) == 0)
+        return false;
+
+    strncpy(tempFileNameOut, fileName, maxFileNameLen);
+    return true;
+}
+
+bool DeleteFile(const char *path)
+{
+    if (strlen(path) >= MAX_PATH)
+        return false;
+
+    const DWORD attr = ::GetFileAttributesA(path);
+    // Report success if the file or path does not exist.
+    if (attr == INVALID_FILE_ATTRIBUTES)
+    {
+        return ReturnSuccessOnNotFound();
+    }
+
+    // Clear the read-only bit if it is set.
+    if ((attr & FILE_ATTRIBUTE_READONLY) &&
+        !::SetFileAttributesA(path, attr & ~FILE_ATTRIBUTE_READONLY))
+    {
+        // It's possible for |path| to be gone now under a race with other deleters.
+        return ReturnSuccessOnNotFound();
+    }
+
+    // We don't handle directories right now.
+    if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0)
+    {
+        return false;
+    }
+
+    return !!::DeleteFileA(path) ? true : ReturnSuccessOnNotFound();
+}
+
+int NumberOfProcessors()
+{
+    return ::GetActiveProcessorCount(ALL_PROCESSOR_GROUPS);
+}
 }  // namespace angle
diff --git a/Source/ThirdParty/ANGLE/util/windows/win32/Win32Window.cpp b/Source/ThirdParty/ANGLE/util/windows/win32/Win32Window.cpp
index c422915..d48192e 100644
--- a/Source/ThirdParty/ANGLE/util/windows/win32/Win32Window.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/win32/Win32Window.cpp
@@ -513,7 +513,7 @@
     // Work around compile error from not defining "UNICODE" while Chromium does
     const LPSTR idcArrow = MAKEINTRESOURCEA(32512);
 
-    WNDCLASSEXA parentWindowClass   = {0};
+    WNDCLASSEXA parentWindowClass   = {};
     parentWindowClass.cbSize        = sizeof(WNDCLASSEXA);
     parentWindowClass.style         = 0;
     parentWindowClass.lpfnWndProc   = WndProc;
@@ -530,7 +530,7 @@
         return false;
     }
 
-    WNDCLASSEXA childWindowClass   = {0};
+    WNDCLASSEXA childWindowClass   = {};
     childWindowClass.cbSize        = sizeof(WNDCLASSEXA);
     childWindowClass.style         = CS_OWNDC;
     childWindowClass.lpfnWndProc   = WndProc;
diff --git a/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp b/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
index 4f4aa8d..9e08b23 100644
--- a/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
+++ b/Source/ThirdParty/ANGLE/util/windows/win32/test_utils_win32.cpp
@@ -11,9 +11,10 @@
 #include <windows.h>
 #include <array>
 
+#include "util/random_utils.h"
+
 namespace angle
 {
-
 void SetLowPriorityProcess()
 {
     SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);
@@ -21,15 +22,15 @@
 
 bool StabilizeCPUForBenchmarking()
 {
-    if (SetThreadAffinityMask(GetCurrentThread(), 1) == 0)
+    if (::SetThreadAffinityMask(::GetCurrentThread(), 1) == 0)
     {
         return false;
     }
-    if (SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS) == FALSE)
+    if (::SetPriorityClass(::GetCurrentProcess(), REALTIME_PRIORITY_CLASS) == FALSE)
     {
         return false;
     }
-    if (SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL) == FALSE)
+    if (::SetThreadPriority(::GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL) == FALSE)
     {
         return false;
     }
diff --git a/Source/ThirdParty/ANGLE/util/x11/X11Window.h b/Source/ThirdParty/ANGLE/util/x11/X11Window.h
index 42aaa1d..7d04b8f 100644
--- a/Source/ThirdParty/ANGLE/util/x11/X11Window.h
+++ b/Source/ThirdParty/ANGLE/util/x11/X11Window.h
@@ -22,7 +22,7 @@
   public:
     X11Window();
     X11Window(int visualId);
-    ~X11Window();
+    ~X11Window() override;
 
     bool initialize(const std::string &name, int width, int height) override;
     void destroy() override;
